我有一个简单的TCP服务器如下:
var net = require('net');
var PORT = 6346;
var server = net.createServer(function(socket) {
socket.on('connect', function() {
console.log('Client connected: ' + socket.remoteAddress);
socket.write('Welcome to the server!\r\n');
});
socket.on('end', function() {
console.log('Client disconnected: ' + socket.remoteAddress);
});
socket.on('error', function() {
console.log('Client error: ' + socket.remoteAddress);
});
socket.on('timeout', function() {
console.log('Client timed out:' + socket.remoteAddress);
});
}).listen(PORT);
Run Code Online (Sandbox Code Playgroud)
当我连接到服务器时,我看到了预期,Client connected: 127.0.0.1但是当我断开连接时,我看到了Client disconnected: undefined.为什么socket.remoteAddress未定义,如何在断开连接时记录客户端的IP?
Bra*_*rad 10
问题是在套接字断开连接后,某些属性(例如remoteAddress)不再可用!
您可以通过使用自己的对象包装套接字,或通过在连接时跟踪其他位置的远程地址来解决此问题.(Woot for closures.)
| 归档时间: |
|
| 查看次数: |
4285 次 |
| 最近记录: |