nodejs网络模块中的'connect'事件何时发出?

时间:2013-10-13 07:38:14

标签: node.js sockets tcp socket.io

我有这个简单的TCP服务器:

var net = require('net');

var server = net.createServer(function (socket) {

    socket.on('connect', function() {
        console.log("New client!");
    });

});

server.listen(8000, function(){
    console.log("server running...")
});

然后我有另一个文件 client.js

var net = require('net');

var client = net.connect({port: 8000},
    function() { 
    console.log('client connected');
});

client.on('error', console.error);

我在一个终端窗口中运行服务器,然后在其他窗口中运行客户端,并期望看到服务器日志“新客户端”。虽然,这不会发生。那么,'connect'事件何时准确发出?

2 个答案:

答案 0 :(得分:17)

net.createServer将给定函数设置为connection event的侦听器。

换句话说,在服务器端,当您收到回调时,套接字已经连接,并且您尝试侦听的事件不会在已连接的套接字上发出。

答案 1 :(得分:0)

我做了一个不同的测试。服务器对象具有“超时”属性。当您拨打以下代码时:

server.setTimeout(500); //现在在0.5秒后你可以调用“连接”事件。 默认值为120000。

但是,我仍然不知道这种变化会带来什么。