咖啡与喵 2022-09-01 21:33 采纳率: 100%
浏览 278
已结题

如何将JS启动的websocket彻底关闭?

问题遇到的现象和发生背景

js创建websocket后调用了close并打印了状态码为3,状态码3代表已完全关闭了websocket。可是在终端中端口却一直占用

问题相关代码,请勿粘贴截图
import WebSocket from 'ws';
var ws = null
export const initWSClient = (url) => {
    ws = new WebSocket(url)
    ws.on('open',() => {
        ws.send(JSON.stringify({
            code: 200,
            msg: 'WS连接成功'
        }));
    })
    ws.on('close', () => {
        ws.removeAllListeners()
        console.log(ws.readyState)
    })
}

export const closeWs = () => {
    ws.close()
}

export const onmessage = (msg) => {
    ws.send(msg)
}

运行结果及报错内容

img

我的解答思路和尝试过的方法

我打印了readyState为3 以为是个异步关闭端口需要等待,也并没有关闭端口 除非我kill -9 掉进程,我觉得使用nodejs的exec执行kill -9是个不明智的行为。

我想要达到的结果

关闭端口号及相关监听

  • 写回答

2条回答 默认 最新

  • 雾里桃花 2022-09-02 08:32
    关注

    前端关闭socket只会关掉当前应用和socket的链接,并不会杀掉socket的服务,就和微信一样,当一个用户退出了微信,调用了close方法,关闭的只是这个用户和socket的联系,这个服务并不会并不会消失

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 9月10日
  • 已采纳回答 9月2日
  • 创建了问题 9月1日

悬赏问题

  • ¥60 最新ukb数据下载方法
  • ¥15 关于#python#的问题:您好可以加您一下联系方式吗,在复现的时候确实有点问题难以解决
  • ¥15 联想电脑重装系统时无法发现硬盘
  • ¥15 MATLAB与UR10e实体机械臂建立通讯
  • ¥15 c++题需要快一点不用opencv
  • ¥15 关于#java#的问题:想要咨询Flowable流程引擎框架的问题
  • ¥15 vscode里面怎么用plaformio强调串口啊
  • ¥20 针对计算后数据做一致性检验可以用Bland Altman法吗
  • ¥15 win32如何自绘编辑框的背景图片(语言-c++|操作系统-windows)
  • ¥15 微信夜间被转走了1w对,当天手机剪切板里就出现了这个乱码,有铁子可以看看是啥吗可以