我正在寻找一种在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)。
有人有这方面的经验或知道替代方案吗?我不确定这是否适合我的目的,我需要实现CRUD和PUB/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/