title: TCP socket + socket.io bidirectional (JSON-)RPC: dnode?
body: <p>I'm looking for a way to implement a bidirectional RPC in <strong>node.js</strong> (means that both client and server provide remote-callable procedures, preferable like json-rpc). It should be usable on top of socket.io and TCP/IP sockets for clients. I was about to use <strong>nowjs</strong> for websockets and provide a seperate API for "normal" sockets.</p>
  
  <p>Now I just found <strong><a href="https://github.com/substack/dnode" rel="nofollow">dnode</a></strong> which claims to work with both. "It works over network sockets and even in the browser with socket.io."</p>
  
  <p>I need to pass <strong>JSON objects</strong> (containing strings) to each other side. The clients will be written in <strong>JavaScript</strong> (Browser), JavaScript (Appcelerator Titanium), <strong>C#</strong> and maybe <strong>Java</strong> (Android), but there's only an implementation for Java. I read the <a href="https://github.com/substack/dnode-protocol" rel="nofollow">protocol</a> and I think it's not that easy to implement.</p>
  
  <p>Also there is a method name exchange after connection is established which would be quite a overhead in my application, I don't need it as I know what I implemented on the other side (it's not a public api).</p>
  
  <p><strong>Someone has experience with it or know alternatives?</strong> I'm not sure if it's the right thing for my purpose, I need to implement <strong>CRUD</strong> and <strong>PUB/SUB</strong>.</p>