forked from spaceloop123/3group
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathSocketServerWrite.js
More file actions
41 lines (35 loc) · 994 Bytes
/
SocketServerWrite.js
File metadata and controls
41 lines (35 loc) · 994 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
40
41
var WebSocketServer = new require('ws');
var wav = require('wav');
var fs = require('fs');
var spies = {};
var webSocketServer = new WebSocketServer.Server({
port: 3001
});
webSocketServer.on('connection', function (ws) {
var wavStream;
var id = Math.random();
ws.on('message', function (message) {
if(message === 'spy') {
spies[id] = ws;
} else if(wavStream === undefined) {
wavStream = new wav.FileWriter(__dirname + '/server/assets/' + message, {
channels: 1,
sampleRate: 48000,
bitDepth: 16
})
} else {
wavStream.write(message);
for(var key in spies) {
spies[key].send(message);
}
}
});
ws.on('open', function (message) {
console.log('open');
});
ws.on('close', function () {
wavStream.end(null);
delete spies[id];
});
});
module.exports = webSocketServer;