Skip to content

Instantly share code, notes, and snippets.

@alexander-daniel
Last active August 29, 2015 13:58
Show Gist options
  • Save alexander-daniel/10301004 to your computer and use it in GitHub Desktop.
Save alexander-daniel/10301004 to your computer and use it in GitHub Desktop.
server.js
var emitStream = require('emit-stream');
var websocket = require('websocket-stream');
var WebSocketServer = require('ws').Server;
var JSONStream = require('JSONStream');
var EventEmitter = require('events').EventEmitter;
var server = (function () {
var self = new WebSocketServer({port: 8080});
return self;
})();
server.on('connection', function(ws) {
var stream = websocket(ws);
var json_stream = stream.pipe(JSONStream.parse([true]));
var ev = emitStream.fromStream(json_stream);
emitStream(ev).pipe(JSONStream.stringify()).pipe(stream);
ev.emit('server ok', Date.now());
ev.on('client message', function (msg) {
console.log(msg);
ev.emit('info', 'info');
});
stream.on('close', function() {
console.log('disconnected');
});
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment