【问题标题】:Websocket and cross-domainWebsocket 和跨域
【发布时间】:2014-07-24 17:52:09
【问题描述】:

目前,我正在开发两个 webapp:

  • 核心,用 Java 和 Vert.x 开发,从许多其他应用程序接收数据并将其发送到客户端)
  • 客户端,用 PHP/JS 开发,从核心显示数据。

在生产阶段,客户端与我的核心不在同一个域中。

从我的开发阶段开始,这两个 web 应用程序都托管在同一台计算机上。我使用“ws:\\localhost:9090”将客户端连接到我的核心,传输数据没有问题。

但是,今天,我尝试将 localhost 替换为我的 IP 地址,但没有成功:s

我认为这是因为客户端与核心不在同一个域中。但我不知道如何解决这个问题?

你有什么想法吗?

谢谢!

代码示例(基于我的代码,但不是我的代码;)):

【问题讨论】:

    标签: java javascript websocket vert.x


    【解决方案1】:

    是的,Websocket 可以跨域,但是你需要握手才能实现。您可能想查看:http://en.wikipedia.org/wiki/WebSockets 以获取握手示例。

    也相关且可能重复:Web sockets make ajax/CORS obsolete?

    【讨论】:

    • 感谢您的回答,但我已经“解决”了我的问题。我使用代理,Wireshark 显示该代理切断了我的 websocket http 标头。所以我的核心没有看到 websocket 连接。没有这个代理,websocket 就可以工作了……
    • 然后使用 wss://(安全)连接。一些代理对 WS 不友好,它们会尝试像在普通 HTTP 请求中一样更改标头。例如,一些代理删除了“Upgrade:websocket”标头(因为被标记为“Connection”)。
    猜你喜欢
    • 2018-03-21
    • 1970-01-01
    • 2020-12-20
    • 1970-01-01
    • 2013-07-30
    • 2012-01-15
    • 1970-01-01
    • 2013-01-04
    • 2013-05-14
    相关资源
    最近更新 更多