0

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

4

1 回答 1

0

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

于 2012-05-22T06:02:41.577 回答