我一直在尝试将Kaazing jms版本与我的.net网站和activemq消息代理集成:
无法向http://www.xgateway.com:8001发送消息。收件人来源http://www.x.com。
当我尝试构建一个由我的Asp .NET网站托管试图连接到kaazing网关的javascript客户端时。
我知道我已经设置好了,因为我可以转到www.xgateway.com:8001
,我可以浏览所有文档并运行演示。我已经运行了股票代码演示,并观察它的完美运作。所以所有设置似乎都没问题。
现在的问题是,我也在同一台机器上的IIS 7上托管了我的asp .net网站。我正在尝试构建托管在我的.net网站(端口80)上的javascript客户端,它与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>
但仍然收到错误。我还缺少什么?
答案 0 :(得分:2)
由于您的.NET应用程序和您的kaazing 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>
在这里你可以找到关于这个主题的detailed documentation。