2011-07-19 36 views
2

我正在面对Socket.io的跨子域/端口问题。在Opera的例子中,当我禁用Flash Socket.io时,会自动回退到JSONP - 这并不好(XHR更好)。跨子域/端口socket.io - 如何处理?

我现在使用测试子域名,我们称之为test.example.com。我尝试了很多方法。

  • http://data.test.example.com:80
  • http://test.example.com:8000
  • http://example.com:8000

解决方案中没有工作。任何提示?也许我应该使用nginx作为反向代理?像http://test.example.com/data/

回答

3

我正在面对Socket.io的跨子域/端口问题。在Opera中的示例 中,当我禁用Flash Socket.io时,会自动回退到 JSONP - 这并不好(XHR更好)。

好问题。使用Opera时,我也有一个“spinning throbber”。但经过一番搜索后,我认为Opera还没有supportCORS。你必须使用CORS来绕过same origin policy。我认为socket.io的唯一选择是添加服务器发送事件(socket.io还没有服务器发送事件,我认为它有cross domain support)。你也可以尝试和fill an issue with socket.io(不要以为他们会把这个放在问题队列前面)。但也许this issue might正在工作服务器发送事件

此外,我认为你可以启用闪光套接字,而不是修复所有问题。几乎all(99%) user do have flash

或者你喜欢你所说的你可以使用Nginx as reverse proxy。另外一些用户确实使用HAProxy

+0

Flash后退不好(实现服务器端事件) – Raynos

+0

@raynos flash有什么问题?99%的浏览器确实有这个问题... – Alfred

+0

插件缓慢,滞后,容易崩溃,泄漏抽象和HTML/DOM总是优于 – Raynos