Socket.io 1.0在内部发出事件

时间:2014-06-05 14:46:25

标签: node.js socket.io

插槽0.9和早期

以前在Socket.io 0.9中,namespace.$emit(...)下有一个公开的方法,它允许你使用NodeJS EventEmitter功能绑定事件。

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

这可以用于在同一个socket.io中发出事件,而无需进行任何类型的外部客户端或其他方法。

Socket.io 1.0

它出现在Socket.io 1.0中,删除了private variable

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

解决方法

我现在通过创建自己的回调注册来解决这个问题,但我更愿意使用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);
    });
};

0 个答案:

没有答案