2

我正在使用 NowJS,但认为 Socket.IO 对于非常高频的消息可能更有效(可能比 nowjs 函数调用的开销更少)。

我想知道是否有可能“劫持”Now 已经建立的 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 代理的函数调用快多少?

4

1 回答 1

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

我尚未测试任何性能差异,因此部分问题仍然悬而未决......

于 2012-02-14T16:36:40.830 回答