我正在寻找一种在node.js中实现双向RPC的方法(意味着客户端和服务器都提供可远程调用的过程,优选json-rpc)。它应该可以在插座上使用。io和TCP/IP套接字的客户端。我打算使用nowjs作为websockets,并为"普通"socket提供一个单独的API。
现在我刚刚找到dnode,它声称可以同时工作。它可以在网络套接字上工作,甚至可以在浏览器中使用socket.io。"
我需要传递JSON对象(包含字符串)到对方。客户端将使用JavaScript(浏览器),JavaScript (Appcelerator Titanium), c# 和Java (Android)编写,但只有Java的实现。我读了协议,我认为它不是那么容易实现的。
在连接建立之后还有一个方法名称交换,这在我的应用程序中会有相当大的开销,我不需要它,因为我知道我在另一边实现了什么(它不是公共api)。
有人有经验或知道替代方案吗?我不确定它是否适合我的目的,我需要实现CRUD和PUB/SUB。
使用套接字。它支持房间,可以存储在内存或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/