gpt4 book ai didi

Node.js,客户端退出后如何保持服务器事件?

转载 作者:可可西里 更新时间:2023-11-01 02:53:24 24 4
gpt4 key购买 nike

我有一个简单的 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com