【问题标题】:Socket.io can't send two consecutive messages?Socket.io 不能连续发送两条消息?
【发布时间】:2012-05-21 20:33:30
【问题描述】:

我正在将 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

【问题讨论】:

  • 进一步调查显示,这只发生在 android 2.2 中的 webbrowser(这是我的目标设备)中。 Android 4.0.3 和 Safari 5.1 (websocket) 似乎没有解决这个问题......

标签: javascript node.js socket.io


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-14
    • 2016-04-25
    • 2012-08-17
    • 1970-01-01
    • 1970-01-01
    • 2017-05-30
    相关资源
    最近更新 更多