2011-08-19 34 views
4

我寫了一個使用websocket的應用程序,我遇到了一個奇怪的問題。Websocket在incognito Chrome中工作,但不在常規Chrome中使用?

如果我在Chrome中運行我的應用程序並嘗試重新連接,它無法重新連接到websocket。

但是,如果我使用incognito Chrome,則它每次都能正常工作。

Chrome瀏覽器中的websocket與incognito Chrome之間有細微差別嗎?某種緩存控制可能?

編輯︰我正在運行Chrome 13.對不起,我不能提供任何示例代碼,因爲它揭示了我的應用程序,但問題的要點是,隱身Chrome可以建立連接到我的服務器每次,但普通的Chrome成功一次,然後失敗所有後續嘗試。奇怪,對吧?

+1

請提供簡化的代碼示例。同時確保您使用的是Chrome 13(除非您的WebSocket服務器支持新規格) –

+0

嘗試安裝Chrome Canary(基本上是Chrome 15),它支持最新的WebSocket規範(版本8),在http://tools.google .com/dlpage/chromesxs它將與您現有的Chrome 13安裝並排安裝。如果這能解決你的問題,那麼這個問題可能與Chrome 13中早期的WebSocket實現有些詭異(這將在Chrome 14中很快得到解決)。 –

+0

你是什麼意思,「重新連接」?使用websockets,你只需要連接一次。然後根據需要發送(並接收)儘可能多的消息,直到您明確關閉連接。如果隱身服務在關閉早期連接之前「重新連接」,這可能表明隱身服務有些特殊之處。 –

回答

0

我想這一切都與最新的hybi 10草案規範。 自Chrome 14以來,只支持此規範。 舊的規格不再有了。

+0

隱身使用其他規格版本? – pimvdb

+0

似乎不太可能隱身使用其他規格版本... –

0

我有同樣的問題。這實際上可能會處理您在服務器端使用的框架。我唯一的建議是不知道你的框架。確保您使用的服務器正確管理您正在接收和發送數據的套接字。 IE相同的套接字。

1

Websockets使通常的HTTP查詢最初連接到服務器。 HTTP查詢在請求中也有Cookie。 在我的情況下,Cookie非常龐大,隱身模式沒有它,只有session_id,因此在常規Chrome瀏覽器中清理cookie會完成交易。

相關問題