Comparing version 1.13.1 to 1.14.0
{ | ||
"name": "webrtc", | ||
"version": "1.13.1", | ||
"version": "1.14.0", | ||
"keywords": [ | ||
@@ -15,7 +15,8 @@ "webrtc", | ||
"dependencies": { | ||
"filetransfer": "^2.0.0", | ||
"localmedia": "^1.0.2", | ||
"mockconsole": "0.0.1", | ||
"rtcpeerconnection": "^2.4.4", | ||
"webrtcsupport": "^1.2.4", | ||
"wildemitter": "1.x", | ||
"rtcpeerconnection": "^2.4.4", | ||
"localmedia": "^1.0.2", | ||
"mockconsole": "0.0.1" | ||
"wildemitter": "1.x" | ||
}, | ||
@@ -22,0 +23,0 @@ "devDependencies": { |
39
peer.js
@@ -5,3 +5,7 @@ var util = require('util'); | ||
var WildEmitter = require('wildemitter'); | ||
var FileTransfer = require('filetransfer'); | ||
// the inband-v1 protocol is sending metadata inband in a serialized JSON object | ||
// followed by the actual data. Receiver closes the datachannel upon completion | ||
var INBAND_FILETRANSFER_V1 = 'https://simplewebrtc.com/protocol/filetransfer#inband-v1'; | ||
@@ -71,2 +75,16 @@ function Peer(options) { | ||
this.on('channelOpen', function (channel) { | ||
if (channel.protocol === INBAND_FILETRANSFER_V1) { | ||
channel.onmessage = function (event) { | ||
var metadata = JSON.parse(event.data); | ||
var receiver = new FileTransfer.Receiver(); | ||
receiver.receive(metadata, channel); | ||
self.emit('fileTransfer', metadata, receiver); | ||
receiver.on('receivedFile', function (file, metadata) { | ||
receiver.channel.close(); | ||
}); | ||
}; | ||
} | ||
}); | ||
// proxy events to parent | ||
@@ -227,2 +245,23 @@ this.on('*', function () { | ||
Peer.prototype.sendFile = function (file) { | ||
var sender = new FileTransfer.Sender(); | ||
var dc = this.getDataChannel('filetransfer' + (new Date()).getTime(), { | ||
protocol: INBAND_FILETRANSFER_V1 | ||
}); | ||
// override onopen | ||
dc.onopen = function () { | ||
dc.send(JSON.stringify({ | ||
size: file.size, | ||
name: file.name | ||
})); | ||
sender.send(file, dc); | ||
}; | ||
// override onclose | ||
dc.onclose = function () { | ||
console.log('sender received transfer'); | ||
sender.emit('complete'); | ||
}; | ||
return sender; | ||
}; | ||
module.exports = Peer; |
Sorry, the diff of this file is too big to display
192142
13
5085
6
+ Addedfiletransfer@^2.0.0
+ Addedasync@0.9.2(transitive)
+ Addedcipher-base@1.0.4(transitive)
+ Addedcreate-hash@1.2.0(transitive)
+ Addedcreate-hmac@1.1.7(transitive)
+ Addedfiletransfer@2.0.5(transitive)
+ Addedhash-base@3.1.0(transitive)
+ Addediana-hashes@1.1.0(transitive)
+ Addedinherits@2.0.4(transitive)
+ Addedmd5.js@1.3.5(transitive)
+ Addedrandombytes@2.1.0(transitive)
+ Addedreadable-stream@3.6.2(transitive)
+ Addedripemd160@2.0.2(transitive)
+ Addedsafe-buffer@5.2.1(transitive)
+ Addedsha.js@2.4.11(transitive)
+ Addedstring_decoder@1.3.0(transitive)
+ Addedutil-deprecate@1.0.2(transitive)