Skip to content

Instantly share code, notes, and snippets.

@takempf
Last active August 29, 2015 13:56
Show Gist options
  • Select an option

  • Save takempf/9300934 to your computer and use it in GitHub Desktop.

Select an option

Save takempf/9300934 to your computer and use it in GitHub Desktop.
RPC + data stream
var rpc = require('rpc-stream');
var engine = require('engine.io-stream');
var rpc_client = rpc();
var engine_stream = engine('/test');
remote = rpc_client.wrap(['addMessage']);
engine_stream
.pipe( rpc_client )
.pipe( engine_stream );
<!DOCTYPE html>
<html>
<head>
<script src="/client_compiled.js"></script>
</head>
<body>
</body>
</html>
{
"name": "rpc-stream-test",
"version": "0.0.0",
"description": "testing out rpc and streams",
"main": "index.js",
"dependencies": {
"engine.io-stream": "~0.4.3",
"event-stream": "~3.1.0",
"rpc-stream": "~1.0.5",
"ecstatic": "~0.4.13"
},
"devDependencies": {},
"scripts": {
"compile": "browserify client.js > client_compiled.js"
},
"license": "MIT"
}
var http = require('http');
var ecstatic = require('ecstatic');
var rpc = require('rpc-stream');
var EngineServer = require('engine.io-stream');
var messages = [];
var ecstatic_server = ecstatic({
root: __dirname
});
var server = http.createServer( ecstatic_server );
var engine = EngineServer( function( engine_stream ){
var rpc_server = rpc({
addMessage: function( text, cb ){
console.log('adding Message: ', text);
messages.push( text );
cb( null, messages.length );
}
});
engine_stream
.pipe( rpc_server )
.pipe( engine_stream );
});
engine.attach( server, '/test' );
server.listen( 8080 );
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment