我正在使用NowJS,但认为Socket.IO对于非常高频的消息可能更有效(可能比nowjs函数调用的开销更少)。
我想知道是否有可能“劫持”现在已经建立并与之复用的IO套接字,希望能够合理地比较两者。
我尝试了以下内容:
// On the server
user.socket.on("my_update", receiveUpdate);
// On the client
now.core.socketio.emit("my_update", { hello: "world" } );
但是从未触发过服务器事件。
我的问题:如何使用NowJS使用的io套接字?或者不是吗?
对于额外的点,使用socket.io emit()比使用NowJS代理的函数调用快多少?
答案 0 :(得分:1)
是的,这是可能的。
我在查找包含其套接字的正确用户对象时遇到了麻烦。结果是用户对象作为调用事件的上下文传递:
// On the server
nowjs.on("connect", function(){
this.socket.on("my_update", receiveUpdate);
// ( user === this )
});
通过套接字发出的消息似乎与来自Now本身的消息交错。
为了它的价值,我收集了来自NowJS源的现有发射消息列表。这些应被视为保留的事件名称!
connect, del, disconnect, groupdel, grouprv, join, leave, multicall, newgroup,
rd, removegroup, rfc, rv
我尚未测试性能上的任何差异,因此部分问题仍未解决......