首页 > 解决方案 > 关闭 node.js websocket 连接的用户友好方式

问题描述

我有一个应用程序在检查以确保尚未分配端口后在随机端口上启动 websocket 连接。每个连接都有一个带有滑块的正面卡,用于根据分配(和存储)的端口号创建/销毁 TCP 连接。使用它附带的预定义事件处理为每个套接字启动服务器很简单,但我不确定允许用户终止 tcp 连接的方法。这看起来像前端的用户将切换开关滑动到关闭位置,我将获取该实体 ID,查询其端口号,然后需要关闭该端口的连接。我希望节点有一种方法能够查询其活动服务器并随意对它们进行操作,但我还没有找到任何建议方法的文章。

标签: javascriptnode.jstcpwebsocketserver

解决方案


我希望节点有一种方法能够查询其活动服务器并随意对它们进行操作,但我还没有找到任何建议方法的文章。

node.js 中没有内置这样的东西。

如果您希望能够在您启动的所有 webSocket 服务器上运行,那么您可以在启动它们时将它们添加到一个数组中。

const serverArray = [];


// code elsewhere that starts a server
let server = new WebSocketServer(someRandomPort);
// push an object into an array that has the port and server
serverArray.push({server, port: someRandomPort});

然后,您可以随时遍历该数组以对所有数组执行某些操作或查找正在使用特定端口的服务器。


但是,在我看来,您实际上并不需要多个 webSocket 服务器。多个客户端(无论您想要多少安全性)都可以共享同一台服务器。这是通常的客户端/服务器设计(多个客户端与一台服务器通信)。


推荐阅读