可以在now.js IO套接字上捎带吗?

时间:2012-02-04 20:35:00

标签: node.js socket.io nowjs-sockets

我正在使用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代理的函数调用快多少?

1 个答案:

答案 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

我尚未测试性能上的任何差异,因此部分问题仍未解决......