2011-08-19 92 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会完成交易。

相关问题