Skip to content

Instantly share code, notes, and snippets.

@oJshua
Last active October 25, 2016 20:26
Show Gist options
  • Save oJshua/81f55236c46a09891bda5e44538f3cf2 to your computer and use it in GitHub Desktop.
Save oJshua/81f55236c46a09891bda5e44538f3cf2 to your computer and use it in GitHub Desktop.
How To Connect Dnode with Socket IO in 2016
var io = require('socket.io');
var dnode = require('dnode');
var socket = io.connect();
var stream = new Stream();
stream.writeable = true;
stream.readable = true;
stream.write = function(buffer) {
socket.emit('message', String(buffer));
};
socket.on('message', function(message) {
stream.emit('data', message);
});
stream.destroy = stream.end = function() {
stream.emit('end');
};
var d = dnode();
d.on('remote', function(remote) {
d.proto.on('request', function(request) {
socket.emit('message', request);
});
remote.cat(function(value) {
console.log(value);
});
});
socket.on('connect', function() {
d.pipe(stream).pipe(d);
stream.emit('connect');
});
socket.on('disconnect', function() {
stream.destroy();
});
var dnode = require('dnode');
var Stream = require('stream');
var stream = new Stream;
stream.writable = true;
stream.readable = true;
stream.write = function(buffer) {
socket.emit('message', String(buffer));
};
socket.on('message', function(message) {
stream.emit('data', message);
});
stream.destroy = stream.end = function() {
stream.emit('end');
};
var d = dnode({
cat: function(callback) {
callback('meow');
}
});
d.pipe(stream).pipe(d);
socket.on('disconnect', function() {
stream.destroy();
});
stream.emit('connect');
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment