我有一个简单的 p2p 应用程序,但是当我作为另一个对等点或客户端连接并退出时,服务器完全停止。我查看了 connection.setKeepAlive
,但它并没有像我想象的那样工作。我只是希望与任何其他对等点的连接在另一个对等点退出时继续存在。
const net = require('net')
const port = 3000
const host = 'localhost'
const server = net.createServer((connection) => {
console.log('peer connected')
})
server.listen(port, () => {
console.log('listening for peers')
})
const client = net.createConnection(port, host, () => {
console.log('connected to peer')
})
最佳答案
在您的脚本中,服务器监听的端口与您用于客户端连接的端口相同,因此应用程序自行调用。
这是一个连接到其对等点并每 2 秒断开连接的脚本:
const net = require('net')
const myPort = 3001
const peerPort = 3002
const host = 'localhost'
const server = net.createServer((connection) => {
console.log('peer connected')
})
server.listen(myPort, () => {
console.log('listening for peers')
})
let connectionTest = function() {
const client = net.createConnection(peerPort, host, () => {
console.log('connected to peer')
});
client.on('close', (err) => {
console.log("connection closed");
});
client.on('error', (err) => {
console.log("error");
});
//TODO do stuff
client.end();
setTimeout(connectionTest, 2000);
}
setTimeout(connectionTest, 3000);
对于每个实例,您都应该更改端口(myPort 和 peerPort)
关于Node.js,客户端退出后如何保持服务器事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48158631/