2012-05-21 52 views
0

我爲我的一個項目使用socket.io,而且我發送兩個連續的消息到同一個套接字時似乎遇到了麻煩。這個想法是,當用戶登錄inn時,我向他發送了所有在未連接時發送給他的消息,這可能會導致多個使用相同方法的.emit調用。但是,客戶端似乎不接收這些信息,或者至少不明白,他已收到他們...發送消息independantly但是精細的作品...Socket.io無法發送兩個連續的消息?

這裏是從服務器控制檯輸出:

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

這是一個在socket.io中的錯誤還是我做錯了什麼?這種行爲很容易通過調用連續兩次發出...

哦,順便說一句。 Socket.io版本0.9.6和NodeJS 0.6.17

+0

進一步的調查顯示,這隻發生在Android 2.2(這是我的目標設備)的瀏覽器。 Android 4.0.3和Safari 5.1(websocket)似乎無法解決問題...... –

回答

0

其實,問題似乎是我沒有添加到我的html文件。 Socket.io使用unicode字符來表示一個有效載荷,所以如果你使用ASCII編碼(默認),這會使你無法接收到多個消息(當使用ajax長輪詢時會發生這種情況)。