有一个演示向我展示了Node的强大之处,那就是Ryan Dahl在这个视频中展示的简单TCP聊天服务器:https://www.youtube.com/watch?v=jo_B4LTHi3I&t=28m23s
这是演示中代码的样子:
const net = require('net');
const server = net.createServer();
const sockets = [];
server.on('connection', (socket) => {
sockets.push(socket);
socket.on('data', (message) => {
for (const current_socket of sockets) {
if (current_socket !== socket) {
current_socket.write(message);
}
}
});
socket.on('end', () => {
const index = sockets.indexOf(socket);
sockets.splice(index, 1);
});
});
server.listen(8000, () => console.log('tcp server listening on port 8000'));
我找到了Deno网站上唯一的TCP示例,它是一个看起来像这样的回显服务器:
const listener = Deno.listen({ port: 8080 });
console.log("listening on 0.0.0.0:8080");
for await (const conn of listener) {
Deno.copy(conn, conn);
}
这个代码很简洁,但我无法使用 Deno.Conn
的 read
和 write
方法将此示例变成TCP聊天服务器。非常感谢您的帮助!我认为将此示例添加到网站中也会很有用。