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

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

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

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

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

【问题讨论】:

    标签: javascript node.js websocket socket.io


    【解决方案1】:

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

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

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-03-31
    • 1970-01-01
    • 2015-05-20
    • 1970-01-01
    • 2014-05-04
    • 1970-01-01
    • 2016-05-12
    相关资源
    最近更新 更多