TCP套接字+ socket.io双向(JSON-)RPC:dnode?

时间:2011-11-09 20:13:32

标签: node.js rpc socket.io json-rpc dnode

我正在寻找一种在 node.js 中实现双向RPC的方法(意味着客户端和服务器都提供远程可调用的过程,最好像json-rpc)。它应该可以在socket.io和客户端的TCP / IP套接字之上使用。我正准备将 nowjs 用于websockets并为“普通”套接字提供单独的API。

现在我刚刚找到声称可以同时使用的 dnode 。 “它适用于网络套接字,甚至可以在带有socket.io的浏览器中使用。”

我需要将 JSON对象(包含字符串)传递给彼此。客户端将使用 JavaScript (浏览器),JavaScript(Appcelerator Titanium), C#以及 Java (Android)编写,但只有Java的实现。我阅读了protocol,我认为实施起来并不容易。

在建立连接之后还有一个方法名称交换,这在我的应用程序中是一个相当大的开销,我不需要它,因为我知道我在另一方面实现了什么(它不是公共API)。

有人有经验或有其他选择吗?我不确定这是否适合我的目的,我需要实施 CRUD PUB / SUB

1 个答案:

答案 0 :(得分: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/