-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathsocketio_turn.js
More file actions
39 lines (33 loc) · 909 Bytes
/
Copy pathsocketio_turn.js
File metadata and controls
39 lines (33 loc) · 909 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
var net = require('net')
var io = require('socket.io').listen(8083, { log: false, "destroy buffer size": Infinity });
io.sockets.on('connection', function (socket) {
console.log("connection open from extension");
var socks = {};
socket.on('b', function(data){
if(!socks[data.id])
socks[data.id] = newTurnClient(data.id);
try{
socks[data.id].write(data.buf);
}
catch(e){console.log(e)}
})
socket.on('c', function(data){
if(!socks[data.id])
return
try{
socks[data.id].destroy();
}
catch(e){console.log(e)}
delete socks[data.id];
})
var newTurnClient = function(id){
var client = new net.Socket();
client.connect(443, 'turn-euw2-ec2.browserstack.com', function() {
console.log('connected to turn', client.remotePort, client.remoteAddress);
});
client.on('data', function(data) {
socket.emit('b', {id: id, buf: data});
});
return client;
}
});