socket.io监听/听取事件

时间:2016-01-21 02:35:26

标签: node.js socket.io

我很惊讶地看到socket.io文档,当socket.io绑定到端口时没有被socket.io触发的事件...我正在寻找一个" listen" /"听"事件...

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用于事件名称。

1 个答案:

答案 0 :(得分:3)

所以socket.io本身不听。 http服务器侦听,这是将发出listening事件的对象。

如果您允许socket.io为您创建http服务器实例,那么该实例将作为httpServer property of your io instance发布,因此您应该可以执行io.httpServer.on('listening', myOnListeningHandler)

这是一个工作示例程序:

var io = require('socket.io')(4001)

io.httpServer.on('listening', function () {
  console.log('listening on port', io.httpServer.address().port)
})