Socket.io 无法连续发送两条消息

Socket.io can't send two consecutive messages?

本文关键字:两条 消息 io 连续 Socket      更新时间:2023-09-26

我正在为我的一个项目使用 socket.io,在向同一套接字发送两条连续消息时似乎遇到了问题。这个想法是,当用户登录 inn 时,我会向他发送在他未连接时发送给他的所有消息,这可能会导致以相同的方法进行多次 .emit 调用。但是,客户似乎没有收到这些消息,或者至少不明白他已经收到了这些消息......但是,独立发送消息可以正常工作...

以下是服务器控制台的输出:

debug: xhr-polling writing �104�5:::
{"name":"friend_request","args":
[{"_id":"4fb040147185a2e21f000002","email":"made_up@gmail.com"}]}�201�6:::6+
[{"_id":"4fb91f732f869a6f16000004","socketId":"12602175611929481375","email":"casablanca@gmail.com",
"friends":[],"recentOpponents":[],"games":[]}]

这是 socket.io 中的错误还是我做错了什么?只需连续两次调用 .emit 即可轻松重现该行为...

哦,顺便说一句,Socket.io 版本0.9.6和NodeJS 0.6.17

实际上,问题似乎是我没有添加到我的 html 文件中。 Socket.io 使用 unicode 字符来指示有效负载,因此如果您使用的是 ASCII 编码(默认(,这将导致您无法接收多条消息(使用 Ajax 长轮询时可能会发生这种情况(。