检查客户端是否未收到消息

Check if the client did not receive the message

提问人:max 提问时间:11/14/2023 最后编辑:Remy Lebeaumax 更新时间:11/14/2023 访问量:16

问:

我正在建立聊天。

有了 ,我可以知道客户端是否收到了消息,但我不知道如何检查客户端是否没有收到消息。这就是我需要能够定义何时发出通知的内容。send()

  • 服务器端:
socket.on(
        'send_message',
        async (room, message) => {

            //some code.

            socket.to(room).emit('received_message', message);

            return socket.on('message', function (message) {
                // here I know, the client received the message.
              });

            // if ( did_not_receive ) handlePushNotification();
        }
);
  • 客户端:
socket.on('received_essage', (response) => {
            setResponse(response);

            socket.send('hi');
        });
socket.io

评论

0赞 Remy Lebeau 11/14/2023
了解客户端是否收到消息的唯一方法是它是否响应该消息。因此,您需要运行某种计时器,并在响应到达时停止它。如果计时器已过,请重新发送消息或关闭连接。
0赞 max 11/14/2023
正是我想做什么,但我不知道怎么做?!由于 “on('message')” 仅在收到消息的情况下被调用。
0赞 Remy Lebeau 11/14/2023
在发送消息之前/之后启动计时器,然后在消息得到响应时停止计时器。如果计时器过去,则表示响应从未到达。当然,这可能意味着原始消息丢失了,或者它已收到但响应丢失了。发件人无法区分。

答: 暂无答案