2012-12-20 152 views
4

安裝node.js後,我跟着這個tutorial啓動了一個簡單的聊天服務器。這是非常容易設置和工作,但我注意到兩個問題:socket.io websocket連接無效(最新chrome)

1)我從socket.io

info - socket.io started 
debug - served static /socket.io.js 
debug - client authorized 
info - handshake authorized 1385647068766475337 
debug - setting request GET /socket.io/1/websocket/1385647068766475337 
debug - set heartbeat interval for client 1385647068766475337 
warn - websocket connection invalid 

得到這個警告這並沒有什麼意義,我,因爲我沒有碰到任何socket.io,我使用最新的chrome版本(23),我知道它支持websockets(我可以用PHP-Websockets成功連接到它們)。它繼續使用XHR,但我真的很感興趣的是使Websocket功能正常工作。

2.)當我到localhost:8080連接到聊天服務器時,它需要大約7-8秒鐘來提示我輸入我的名字,並且實際上將我連接到服務器。我有一種感覺,這可能是因爲它正在恢復到XHR,但我並不真正瞭解它,所以我不能說。有什麼想法嗎?

+0

我看到了同樣的問題。我使用的是Chrome 24。 – slowpoison

+0

警告甚至來自哪裏(代碼)?我在圖書館找不到它。 「websocket連接無效」 – Samson

回答

2

我在使用舊版本的socket.io和後來的chrome版本(以及其他瀏覽器)時看到了這種情況。它會超時然後回退到xhr輪詢。要檢查您正在使用的socket.io庫,版本在shell(LINUX/UNIX)類型:

npm ls| grep socket.io 

它應該告訴你的版本。最新在這個時候是0.9.13,這是有效的。

如果您正在運行http://psitsmike.com的教程,請注意,package.json文件對舊版本的socket.io進行了硬編碼,該版本不支持最新的瀏覽器。

希望這會有所幫助。

0

我也面臨類似的問題。

你的情況 -

  • 嘗試刪除Cookie,有時一旦成功連接XHR輪詢選項保存到餅乾,每下一次重複使用。 Similar question answered here
  • 另外debug - served static /socket.io.js有時會在html或jade模板文件中錯誤地引用socket.io文件時出現。如果錯誤,嘗試更正腳本src鏈接。它應該是這樣的 - var socket = io.connect('http://localhost:3000');或者你也可以試試一起移除鏈接這樣的 - var socket = io.connect();

希望它能幫助。