Could not find a way with SockJS or Shoe, so I switched with websocket-stream.
Here's a working code:
node server
'use strict';
var ws = require('ws');
var websocketStream = require('websocket-stream');
var dnode = require('dnode');
var http = require('http');
var HTTPserver = http
.createServer()
.listen(9999);
var WSserver = new ws.Server(
{
server: HTTPserver
});
WSserver
.on('connection', function(s)
{
var c = websocketStream(s);
var d = dnode(
{
test: function(f)
{
console.log('--------');
f('hello');
}
});
c
.pipe(d)
.pipe(c);
});
browser client
'use strict';
var websocketStream = require('websocket-stream');
var dnode = require('dnode');
var c = websocketStream('ws://localhost:9999');
var d = dnode()
.on('remote', function(remote)
{
remote.test(function(msg)
{
alert(msg);
});
});
c
.pipe(d)
.pipe(c);