【问题标题】:ActiveMQ - Stomp over websockets - Same Origin PolicyActiveMQ - 踩过 websockets - 同源策略
【发布时间】:2020-11-18 10:21:21
【问题描述】:

我有一个在加利福尼亚运行的进程想要与纽约的一个进程通信,使用 Stomp over Websockets。

另外请注意,我的进程不是 Web 应用程序,但我在 C++ 中实现了一个基于 websocket 客户端的 stomp,以便将事物连接到我的后端。也许这是或不是一个好主意。所以,我希望我的客户与服务器对话并订阅,他们的客户推送消息。

当我看到 ApacheMQ 支持 Stomp over Websockets 时,我正在实现自己的服务器。所以,我开始阅读文档。

它在“配置”下的最后一行表示 http://activemq.apache.org/websockets

值得注意的是,Web 套接字(就像 Ajax 一样)实现了 ? > 同源策略,因此您只能访问在与运行客户端的 Web 应用程序相同的主机上运行的代理。

它在几个相关搜索中再次提到它,例如http://sensatic.net/activemq/activemq-54-stomp-over-web-sockets.html

这是服务器限制还是网络客户端限制?

有了这个限制,如果我理解正确,服务器不会接受来自客户端的任何类型的 websocket 连接,而不是在同一台机器上?

我不确定我是否明白这一点......

如果这确实是它的意思,那么我该如何绕过它来实现我的场景?

【问题讨论】:

    标签: websocket activemq


    【解决方案1】:

    我没有找到您所指的那一点文档,但据我所知,代理上的 STOMP 实现似乎不正确。默认情况下,传输连接器接受来自外部主机的连接请求不应该有任何限制,我认为浏览器不会像对待其他事情一样对待 websocket 请求,比如在同源策略方面的 Ajax 案例.

    这可能是最好通过实际尝试检查它是否有效来检查的情况,我已经在 ActiveMQ 上使用 AMQP over websockets 从同一主机外部正常连接,所以我猜 STOMP 堆栈也应该可以正常工作.

    【讨论】: