2

node.jsで双方向 RPC を実装する方法を探しています (クライアントとサーバーの両方が、json-rpc のようにリモート呼び出し可能なプロシージャを提供することを意味します)。クライアントの socket.io および TCP/IP ソケットの上で使用できるはずです。websockets にnowjsを使用し、「通常の」ソケットに別の API を提供しようとしていました。

今、両方で動作すると主張するdnodeを見つけました。「ネットワーク ソケットを介して動作し、socket.io を使用するブラウザでも動作します。」

JSON オブジェクト(文字列を含む) を相互に渡す必要があります。クライアントは、JavaScript (ブラウザ)、JavaScript (Appcelerator Titanium)、C#、そしておそらくJava (Android) で作成されますが、Java の実装しかありません。プロトコルを読みましたが、実装はそれほど簡単ではないと思います。

また、接続が確立された後にメソッド名の交換がありますが、これはアプリケーションでかなりのオーバーヘッドになります。反対側で実装したものを知っているので必要ありません (パブリック API ではありません)。

誰かがそれを経験したり、代替案を知っていますか? CRUDPUB/SUBを実装する必要があります。

4

1 に答える 1

5

socket.ioを使用します。これは、メモリまたはRedis Pub/Sub実装を格納できる部屋をサポートしています。ソケットに名前空間を付けて、イベントを通じてCRUDを提供することもできます。

var io = require('socket.io').listen(80);

var someResource = io
  .of('/someResource')
  .on('create', function (socket) {
    createSomeResource()
  })
  .on('read', function(socket) {
    readSomeResource(id, function(){
      io.sockets.in('roomBasedOnSessionId').emit('data', {my:'json'})
    })
  })

これは、ソケットやセッション共有への参照など、必要なトピックのいくつかの 優れたウォークスルーです。http://www.danielbaulig.de/socket-ioexpress/

于 2011-11-14T09:02:12.203 に答える