我有这个简单的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'事件何时准确发出?
答案 0 :(得分:17)
net.createServer
将给定函数设置为connection
event的侦听器。
换句话说,在服务器端,当您收到回调时,套接字已经连接,并且您尝试侦听的事件不会在已连接的套接字上发出。
答案 1 :(得分:0)
我做了一个不同的测试。服务器对象具有“超时”属性。当您拨打以下代码时:
server.setTimeout(500);
//现在在0.5秒后你可以调用“连接”事件。
默认值为120000。
但是,我仍然不知道这种变化会带来什么。