我一直在尝试将Kaazing jms版本与我的。net网站和activemq消息代理集成:
无法发送消息到http://www.xgateway.com:8001。收件人有来源http://www.x.com。
当我试图建立一个javascript客户端是由我的asp.net网站托管试图连接到kaazing网关。
我知道我已经设置好了,因为我可以去www.xgateway.com:8001
,我可以浏览所有的文档并运行演示。我已经运行的股票报价演示和观看它完美地工作。所以所有设置看起来都没问题。
现在的问题是,我也有我的asp .net网站托管IIS 7在同一台机器上。我试图建立javascript客户端托管在我的。net网站(端口80)与kaazing网关连接。但我一直得到上述交叉原点误差
在我的客户端,我引用StompJms.js指示。我有activemq设置正确,工作以及消息代理。所有的演示工作证明一切都是正确的。
我也按照文档中的说明采取了这些步骤:
复制GATEWAY_HOME/lib/client/javascript/PostMessageBridge.html文件并从源源web服务器(http://www.example.com)提供它;例如在http://www.example.com/bridge/PostMessageBridge.html。注意:你必须确保PostMessageBridge.html文件与web服务器托管在相同的源(相同的方案,主机和端口)上。
将以下标签(如第2行和第3行所示)添加到主应用程序页面的部分:
<head>
<meta name="kaazing:postMessageBridgeURL"
content="http://www.x.com/PostMessageBridge.html" >
.
.
.
</head>
,但仍然得到错误。我还错过了什么?
因为你的。net应用程序和你的websocket网关使用的端口号是不同的,它们被认为是独立的站点。因此,您需要为您的服务指定跨站点约束。
下面是需要添加到gateway-config.xml中的示例代码片段:
<service>
<accept>ws://localhost:8001/remoteService</accept>
<connect>tcp://localhost:61613</connect>
<type>stomp.proxy</type>
<auth-constraint>
<require-role>AUTHORIZED</require-role>
</auth-constraint>
<cross-site-constraint>
<allow-origin>http://localhost:8000</allow-origin>
</cross-site-constraint>
</service>
您可以在这里找到有关该主题的详细文档。