【发布时间】:2016-01-21 02:35:25
【问题描述】:
我很惊讶地看到socket.io 文档,当 socket.io 绑定到一个端口时,它没有触发任何事件......我正在寻找一个“监听”/“监听”事件...... .
http://socket.io/docs/server-api/
我有一个用 http.Server 实例初始化的简单模块:
var io = require('socket.io');
var socketServer = null;
function getSocketServer(httpServer) {
if (socketServer === null) {
if (httpServer == null) {
throw new Error('need to init socketServer with http.Server instance');
}
socketServer = io.listen(httpServer);
}
return socketServer;
}
module.exports = {
getSocketServer:getSocketServer
};
当我需要这个模块时,我想监听一个“监听”事件。
类似:
var socket = require('./socket-cnx').getSocketServer();
socket.on('listening',function(err){
});
我想主要原因是因为on API 用于事件名称。
【问题讨论】:
-
为什么要在已经在轨的航天飞机上监听“igniteEngine”事件?考虑到您示例中的
socket是 调用 io.listen() 的结果,我认为假设它已经在监听是安全的。 -
@mcmillan 这没有意义...http.Server 有一个监听功能和 on('listening') 事件...
-
@mcmillan,在工程界,我很确定如果你触发“ignite-engine”调用,监听“engine is ignited”事件绝不是多余的。总会有错误发生在某处,越早发现越好……您可以在下面看到来自 Peter Lyons 的一些信息,这些信息可能会回答一些问题
-
是的,但是
getSocketServer()没有返回http.Server,是吗? -
它正在返回是的......里昂的答案是正确的