Socket.io 1.0内部发射事件

套接字0.9和更早

以前在Socket.io 0.9中,在命名空间下有一个暴露的方法: $ emit(…) ,它允许你使用NodeJS EventEmitterfunction绑定事件。

io.of('namespace').on(...) 

这可以用来在同一个socket.io中发送事件,而不需要做任何types的外部客户端或其他方法。

Socket.io 1.0

它出现在Socket.io 1.0中,这被删除了,以支持一个私有variables 。

有没有官方的方法或最好的方式来发送和接收在同一个应用程序中的socket.io事件,而无需使用socket.io-client并连接到服务器?

解决方法

我现在通过创build自己的callback注册来解决这个问题,但我更愿意使用socket.io来内部侦听它自己的事件并使用它的命名空间。

 socketIO.register = function(event, callback){ socketIO.registeredEvents = socketIO.registeredEvents || {}; socketIO.registeredEvents[event] = socketIO.registeredEvents[event] || []; socketIO.registeredEvents[event].push(callback); }; socketIO.emitInternal = function(event, eventData){ if(!socketIO.registeredEvents[event] || socketIO.registeredEvents[event].length === 0) return; socketIO.registeredEvents[event].forEach(function(callback){ callback(eventData); }); };