我正在使用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
答案 0 :(得分:0)
实际上,问题似乎是我没有添加到我的html文件中。 Socket.io使用unicode字符来表示有效负载,因此如果您使用ASCII编码(默认),这将使您无法接收多条消息(使用ajax长轮询时可能会发生这种情况)。