如何确保 socket.io 服务器已收到 socket.io-client 消息? [复制]

     2023-04-18     24

关键词:

【中文标题】如何确保 socket.io 服务器已收到 socket.io-client 消息? [复制]【英文标题】:How to ensure a socket.io-client message has been received by socket.io server? [duplicate] 【发布时间】:2018-01-19 04:46:24 【问题描述】:

有没有办法确保 socket.io 服务器接收到 socket.io-client 消息?我看到 socket.io 中有一个确认机制。如果没有收到确认,我们可以重试发送消息(是否有任何标准模式),或者如果在某个规定的时间没有收到确认,socket.io-client 是否会重试发送消息?

我的应用程序正在 2g 蜂窝网络上使用 socket.io-client。 98% 的消息在没有任何问题的情况下到达服务器。据我所知,由于蜂窝网络的问题,另外 2% 的消息丢失了。

它将声称有一个套接字连接并且数据将被传输但服务器端永远不会得到它。我想知道是否有可靠的方法来确保客户端消息已到达服务器。我的每个客户都已经有一个 ID,但不能只是假设消息到达那里。

如果在特定时间范围内未进行确认,是否有人提供如何重新发送相同消息的示例。我什至不在乎是否再次发送相同的消息,这对我来说是不可取的,但并不那么重要。

【问题讨论】:

【参考方案1】:

最灵活的方式是建立自己的确认机制。如果您使用超时,您可能需要防止重复消息,因为假定丢失的消息最终可能会到达。

作为替代方案,简单的 AJAX 可以确保消息被传递,并且它也比 websocket 更可靠。但是,您可能需要重建现有系统,自行判断是否值得。

【讨论】:

我发现了这个:Websocket transport reliability (Socket.io data loss during reconnection) 更新:使用 MQTT 找到更可靠的解决方案

如何在 socket.io CLIENT 上使用回调?

...NT?【发布时间】:2016-01-0610:19:33【问题描述】:我想回调服务器以确认我的客户端已收到呼叫。在相反的方向上,这是有大量文档的并且工作正常,但是我如何从客户那里得到确认?注意:我在Android上使用的是socket-io-java-clientht... 查看详情

防止欺骗攻击 - 如何确保我的客户收到来自真实服务器的订单?

】防止欺骗攻击-如何确保我的客户收到来自真实服务器的订单?【英文标题】:Preventingspoofingattack-howtoensuremyclientreceivesordersfromtherealserver?【发布时间】:2021-08-1319:58:08【问题描述】:我正在开发与网站集成的Chrome扩展程序。我... 查看详情

socket.io 的最佳 Java 服务器实现

】socket.io的最佳Java服务器实现【英文标题】:Bestjavaserverimplementationforsocket.io【发布时间】:2013-03-1205:06:18【问题描述】:我想使用socket.io将数据从服务器推送到浏览器,但项目是javatomcat之一,Github中有很多实现socket.io的服务器... 查看详情

重新加载页面后,如何确保服务器和客户端上的 socket.id 相同?

】重新加载页面后,如何确保服务器和客户端上的socket.id相同?【英文标题】:HowdoImakesuresocket.idisthesameontheserverandtheclientafterapagereload?【发布时间】:2022-01-1417:29:48【问题描述】:我正在编写使用Node集群(workers)、Redis和socket.i... 查看详情

计算水平服务器上的 socket.io 用户

】计算水平服务器上的socket.io用户【英文标题】:Countingsocket.iousersacrosshorizontalservers【发布时间】:2012-08-2306:53:21【问题描述】:我有多个使用redisstore水平扩展的socket.io服务器。我已经有效地设置了房间,并且能够成功地跨服... 查看详情

Socket.io - 失败:连接在收到握手响应之前关闭

...706:03:12【问题描述】:NodeJS的Socket.io似乎不能用作websocket服务器由于某种原因,socket.io总是回退到长轮询,如果我强制websocket传输层,它将出错:失败:在收到 查看详情

NestJS + Socket.io:没有收到消息

...使用socketio开发NestJS后端。很遗憾,我遇到了问题。我在服务器上运行这段代码:importWebSocketGateway,WebSocketServer,SubscribeMessage,OnGatewayConnectio 查看详情

“从服务器收到未知错误......”在 Swift 上使用 Socket.io

】“从服务器收到未知错误......”在Swift上使用Socket.io【英文标题】:"Gotunknownerrorfromserver..."usingSocket.ioonSwift【发布时间】:2016-11-1819:20:14【问题描述】:我正在尝试连接到我的Xcode服务器的内部socket.io。我使用这个初始... 查看详情

客户端发出时如何测试socket.io服务器

】客户端发出时如何测试socket.io服务器【英文标题】:Howtotestsocket.ioserverwhenclientemits【发布时间】:2019-05-0919:42:34【问题描述】:我希望客户端发出信号,并在收到该信号时测试我的socket.io服务器的行为。我看过thisquestion和这些... 查看详情

Socket.io 使用 node.js,根本没有 express?

...18:07:29【问题描述】:所以我想使用socket.io创建一个node.js服务器,但我更像是一个初学者,并且发现express包在语法上相当混乱。我知道我应该学习如何使用express和app.js,但计划在我达到只有http、js和soc 查看详情

如何检测 socket.io 上的断开连接?

...项目中使用socket.io。我打开了重新连接功能。如果用户与服务器断开连接,我想显示警报(您的互联网连接丢失。尝试重新连接)。如果用户再次重新连接,我想再显示一个警报(别担心,您已连接)。我该怎么做?【问题讨论... 查看详情

Angular 5 socket.io 未收到其他组件中的更新

...有后端的Angular应用程序。我有一个提要,当我收到来自服务器的消息时会更新。当插入新数据时,服务器会收到通知,但我的其他组件没有收到任何内容。我已经在注入两个组件的 查看详情

如何配置 socket.io 来监听客户端

】如何配置socket.io来监听客户端【英文标题】:Howtoconfiguresocket.iotolistentoclientside【发布时间】:2020-06-2510:51:00【问题描述】:我是使用套接字的新手,并不完全了解它们的工作原理。当我加载我的网站时,我收到此错误,我只... 查看详情

非活动客户端连接的socket.io服务器端超时?

】非活动客户端连接的socket.io服务器端超时?【英文标题】:socket.ioserver-sidetimeoutforinactiveclientconnection?【发布时间】:2015-09-0813:49:30【问题描述】:我知道,如果socket.io客户端库没有定期收到对其发送到服务器的ping数据包的响... 查看详情

集成测试 node.js socket.io 服务器

】集成测试node.jssocket.io服务器【英文标题】:Integrationtestinganode.jssocket.ioserver【发布时间】:2019-06-2019:19:20【问题描述】:我正在尝试设置服务器以使用nodejs、express和socket.io响应socket.io客户端。我想编写测试来探测服务器并确... 查看详情

NodeJS 和 Socket.IO 用户认证

...到消息。如何防止未经身份验证的用户使用Socket.IO连接到服务器以及 查看详情

socket.io 下的可靠消息传递?

...-假设您可能希望存储消息以供以后转发等用例)。关于如何实现这一点的任何简单想法?想知道 查看详情

重新连接到我的 socket.io 服务器后,没有收到从我的 android 设备发送的事件

】重新连接到我的socket.io服务器后,没有收到从我的android设备发送的事件【英文标题】:Afterreconnectingtomysocket.ioserverdoesnotreceivetheeventsentfrommyandroiddevice【发布时间】:2020-11-2217:33:05【问题描述】:我真的看不出有什么问题,在... 查看详情