gpt4 book ai didi

javascript - node.js : socket. 中的 socket.io 发出在 socket.disconnect 之前未完成

转载 作者:太空宇宙 更新时间:2023-11-04 02:40:34 24 4
gpt4 key购买 nike

我尝试使用node.js作为带有socket.io的服务器(通过https连接服务器对象,客户端使用选项secure: true连接)和JavaScript前端。

在服务器上,如果登录尝试失败,我将调用:

socket.emit('unauthorized');
socket.disconnect();

在客户端我有:

this.Socket = io.connect(server, { secure: true });
this.Socket.on('disconnect', this.Socket_Disconnect);
this.Socket.on('unauthorized', this.Socket_Unauthorized);

我能够看到断开连接事件触发(参数设置为['booted'],无论我是否将任何参数传递给socket.disconnect(),但未经授权的事件永远不会发生。我是否试图以错误的方式传递此消息?

我在这里的理由是我希望能够发送不同类型的 disconnect 事件,例如:

注销 - 客户端应停止尝试连接,直到用户登录

服务器重新启动 - 客户端应重新尝试连接,直到连接成功

我需要能够在客户端知道为什么客户端被服务器断开连接,是否至少有某种方法可以确保在调用 socket.disconnect() 之前已发送消息?

编辑:这似乎特定于 Node.js cluster 代码 - 当应用程序在单个线程上运行时,它会按预期工作。

最佳答案

如果有人发现此问题正在寻找问题的解决方案,可以通过设置 Redis 服务器并配置 socket.io 在 node.js 中使用它来解决此问题。

关于javascript - node.js : socket. 中的 socket.io 发出在 socket.disconnect 之前未完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16746109/

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