【问题标题】:Cross-subdomain / port socket.io - how to deal with that?跨子域/端口 socket.io - 如何处理?
【发布时间】:2011-10-08 14:40:18
【问题描述】:

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

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

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

没有一个解决方案有效。有什么提示吗?也许我应该使用 nginx 作为反向代理? http://test.example.com/data/ 之类的东西?

【问题讨论】:

    标签: browser node.js cross-domain socket.io


    【解决方案1】:

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

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

    另外,我认为您可以改为启用闪存套接字,这可以解决所有问题。几乎是all(99%) user do have flash

    或者你喜欢你说你可以使用Nginx as reverse proxy。还有一些用户确实使用HAProxy

    【讨论】:

    • Flash 回退并不好 :( 改为实现服务器端事件。
    • 插件速度慢、滞后、容易崩溃、抽象泄漏和 HTML/DOM 总是优越的。
    • 诚然,Flash 让您快速入门!适用于几乎所有浏览器(99%),并且在 socket.io 中有很好的支持。例如,没有旋转的悸动者......
    猜你喜欢
    • 2011-06-19
    • 2012-01-17
    • 1970-01-01
    • 2015-04-10
    • 1970-01-01
    • 1970-01-01
    • 2017-08-15
    • 1970-01-01
    • 2013-09-15
    相关资源
    最近更新 更多