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

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

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

现在我刚刚找到 dnode 声称可以与两者一起使用。 “它可以通过网络套接字工作,甚至可以在带有 socket.io 的浏览器中工作。”

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

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

有人有这方面的经验或知道替代方案吗?我不确定这是否适合我的目的,我需要实现CRUDPUB/SUB

最佳答案

使用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'})
    })
  })

这里是您需要的一些主题的精彩演练,包括对套接字和 session 共享的引用。 http://www.danielbaulig.de/socket-ioexpress/

关于node.js - TCP套接字+socket.io双向(JSON-)RPC : dnode?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8070976/

相关文章:

javascript - 如何将 Socket.io 路由代码分离到不同的文件中

node.js - 使用 TypeScript 和 Node/Passport 将异步回调传递到类构造函数中

go - D 或 Go 用于集群游戏服务器

delphi - SOAP:Delphi 2010 生成的 WSDL 定义中的错误错误

javascript - socket.io 未接收/发送

node.js - 如何获取房间列表

向数据库插入行时 MySQL 语法错误

node.js - 访问 Node 中的数据字段给我未定义

javascript - 抓取: Get Link that is only visible on the website not in the html

java - 本地 C++ 和 Java 程序之间通信的良好替代方案是什么?