问题标签 [disconnection]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
306 浏览

node.js - 如何处理不退出浏览器/网站的断开客户端?套接字IO

我在 NodeJS 中有一个运行 socketIO 的网络游戏。该代码有效,但由于玩家未完全断开连接,导致游戏出现故障。我所说的没有完全断开连接的意思是 - 当移动播放器屏幕锁定他们的手机时,服务器会响应断开连接。这太棒了!但是,客户端不会在他们的手机浏览器中退出网页。出现问题/故障是因为客户端可能会返回浏览器中已加载的网页。服务器感知到这一点并允许他们与游戏交互,但从不触发 io.on 连接功能。玩家自然刷新页面以获取当前游戏状态,服务器统计数据开始调整,因为刷新首先触发 io.on 断开功能,然后触发 io.on 连接功能。这是一个问题,因为在断开连接时,服务器会将 playerCount 负数增加一。最终,通过不完全断开连接,也就是将网页加载到内存中,播放器在连接之前会断开两次连接。这会抛出 playerCount 变量。他们是否有任何明显或明确的解决方案来修复此 socketio 功能?

这里有几行相关代码。

当断开连接函数被调用两次时,它会抛出 playerCount 导致未来的玩家加载到错误的位置。我猜这个问题正在发生,因为即使服务器断开了它们,已经呈现的 html 页面只是在等待重新连接,因此服务器没有使用 socket.on 连接函数响应。有什么想法吗?

0 投票
1 回答
527 浏览

linux - 在父 shell 终止后恢复 gdb 会话

我在 SSH shell 上运行 gdb。一段时间后,shell 由于空闲而断开连接。重新连接时,我看到 gdb 实例仍在运行。

  1. 如何控制正在运行的 gdb 实例?
  2. 我可以启动一个新的 gdb 实例并从正在运行的 gdb 实例接管会话吗?

注意:这不是要保持 SSH 会话处于活动状态。这更多是关于从另一个 shell 实例控制 gdb。无论它是从 SSH 运行还是在本地运行。

0 投票
1 回答
438 浏览

java - 以编程方式断开与 Firebase 的连接

如何以编程方式断开用户连接?

这是我的问题:我知道与 firebase 的最大同时连接数为 100,但在我的应用程序中,我正在从数据库中检索所有数据,然后我不再需要它,所以可以断开电话与以编程方式火力基地?

0 投票
0 回答
139 浏览

asp.net-core - ASP.net Core - Signalr 断开连接后处理客户端信息服务器端

如果用户与 signalR 断开连接超过 10 分钟,我基本上是在尝试做一些数据库工作。我在 Hub 的 OnDisconnectedAsync() 中放置了一个计时器。我遇到的问题是我需要访问数据库的 ObjectDisposedException。当我绕过计时器并尝试直接在 OnDisconnectedAsync() 中进行调用时,我遇到了同样的问题。我想当我进入 OnDisconnectedAsync() 时,一切都已经被破坏了。

几天来我一直在尝试我能找到的一切,但似乎没有任何效果。处理此类问题的正确方法是什么?

0 投票
1 回答
558 浏览

bluetooth-lowenergy - 减少 Instant Passed (0x28) BLE 断开错误的发生

我正在 STM32 SPBTLE-1S 模块(BLE 4.2)上开发一个应用程序。该模块连接到 Raspberry Pi。

当连接质量较低时,有时会在达到连接超时之前断开连接,错误代码为0x28(原因:即时通过)。

当前的连接设置是:

Conn_Interval_Min: 10

Conn_Interval_Max: 20

从属延迟:5

Timeout_Multiplier:3200

阅读有关此类错误的更多信息,似乎发生在“无法执行包含瞬间的 LMP PDU 或 LL PDU,因为这将发生的瞬间已经过去”。这些包通常用于跳频或连接更新。就我而言,它们必须是频率希望的小包。

关于如何防止由“即时通过”错误导致的这些断开连接的任何想法?还是它们仅仅是 BLE 技术的结果?

0 投票
0 回答
46 浏览

bluetooth-lowenergy - 一段时间后,BLE CC2541 与应用程序断开连接

我正在研究 CC2541 BLE 控制器。我正在使用 TI BLE 堆栈中的 SimpleBLEPeripheral,该堆栈可在 TI 网站上找到。我已将控制器与传感器连接,该传感器的状态以 3 秒的间隔变化。这意味着每 3 秒生成一次事件。我正在使用长度为 128 位的自定义配置文件的 UUID。我还开发了一个应用程序来获取我的应用程序上的传感器数据。一切正常,但设备在建立连接后与应用程序断开连接。

我也尝试更改固件中的连接参数,但问题尚未解决。

我应该怎么做才能使这种连接完美无瑕?我希望该设备在范围内时不应该断开连接,并且如果设备超出范围一段时间,它应该在手机范围内时自动重新连接到应用程序。

0 投票
1 回答
93 浏览

python - 与postgres的数据库连接在python语言的服务器中不断断开

我不想断开连接。想用生命周期与 postgres 建立全球联系。我已经尝试了很多,但如果有的话,请告诉我。

0 投票
0 回答
43 浏览

websocket - closeReason 为 1006 时 JAVA Websocket 未关闭

两个websocket是服务器和客户端之间的连接。稍后,服务器的websocket重新关闭,它的关闭原因是1006。但是客户端的websocket没有收到关闭。它向服务器发送数据,服务器的websocket接收数据也。为什么客户端的套接字和服务器的套接字之间的连接不关闭?

WebSocket 客户端使用 NGINX 连接到服务器。当 NGINX 被阻塞或卡住时,10 秒内没有消息发送到服务器,但客户端可以发送到 NGINX。这时我的服务器链接超时错误1006,通过抓包显示NGINX和服务器之间的TCP链接没有断,客户端消息仍然可以发送到NGINX,当block消失后,消息可以发送到服务器。会话。服务器上的 isOpen 为 false,无法向客户端发送消息。Q:如果服务器监听1006关闭,如何通过nginx通知客户端断开连接,同时断开TCP连接?

0 投票
1 回答
289 浏览

google-cloud-platform - 部署到 Google Cloud Run 时,Websocket 上的 MQTT NodeJS 服务器中的客户端定期断开连接

我有一个在 websockets 上运行并部署到 Cloud Run 的 Node JS MQTT 服务器。此服务器使用 Aedes MQTT 代理库 ( https://github.com/moscajs/aedes )。客户端通过端口 443 连接到该服务器。一切正常,但每个客户端都会定期与 MQTT 代理断开连接(大约每 5 分钟,因为每个客户端首次连接)当服务器部署到专用机器或Google Cloud VM,仅在部署到 Google Cloud Run 时发生。

为了说明这个问题,我在 NodeJS 中编写了一个超级简单的 MQTT 服务器,它允许任何客户端连接并回显到队列“响应”客户端发送到队列“消息”的任何消息和一个 NodeJS 脚本来测试它。您可以在https://github.com/madomingo/mqtt_test/tree/main中找到完整的 2 文件项目

服务器代码是:

我还有一个 NodeJS 测试脚本,它连接到服务器并每 15 秒将日期时间发送到队列:

如果我在本地运行服务器和测试脚本,一切都按预期工作:每 15 秒,客户端将日期时间发送到队列“消息”中的服务器,然后服务器立即回显这个日期时间到队列“响应”。服务器和客户端都登录到控制台。这无限期地运行并且没有断开连接。

我发现的问题是当服务器部署到 Google Cloud Run 服务时(我已经这样做了,我得到了 url:test-mqtt-server-kdtisjwi5a-ew.a.run.app)。

在测试脚本中,我将主机 url 更改为:const host = "wss://test-mqtt-server-kdtisjwi5a-ew.a.run.app:443"。然后再次运行测试脚本,客户端连接到部署到 Cloud Run 的服务器,一段时间后,控制台按预期显示日志:

但是在第一次连接后每隔 5 分钟,客户端会意外断开连接,尽管它会立即重新连接。日志现在显示:

我没想到会断开连接,因为显然没有任何连接问题。所以我的问题是,为什么在部署到 Cloud Run 时会出现这种断开连接?并且可以避免吗?

任何帮助表示赞赏,谢谢!

0 投票
1 回答
131 浏览

c# - Raspberry PI 蓝牙 RFcomm 立即断开连接

我正在尝试在 Windows 10 计算机上创建 Raspberry Pi 和 .NET 应用程序之间的连接。到目前为止,我已经成功地配对了这两个设备。下一步是在它们之间发送数据。

为此,我使用以下命令开始侦听端口

sudo rfcomm watch /dev/rfcomm1

当我在 Windows 机器上使用 PuTTY 建立连接时,它工作正常,所以我想我正确配置了 Raspberry PI。

但是,我的目标是通过 .NET 应用程序建立连接。当我运行该应用程序时,它会连接,但之后会立即断开连接。

pi@raspberrypi:~ $ sudo rfcomm watch /dev/rfcomm1 等待通道 1 上的连接 从 B4:0E:DE:13:FB:D6 连接到 /dev/rfcomm1 按 CTRL-C 挂断 Disconnected 等待通道 1 上的连接

连接错误

我将以下代码用于 .NET 应用程序。

.NET 应用程序的 Sudo btmon 响应:

有关如何解决此问题的任何建议?提前谢谢。