我已经在主机上创建了Kaazing VPN的设置,并从perl引用VM作为来宾计算机&而且,正如我所建议的那样,我还使用http://kaazingcorp.cachefly.net/com/file/kaazing-vpc.pdf测试了连接。但是现在我想使用一些javascript将消息发送到客户端的kaazing网关,并希望看到旅行到配置了ActiveMQ的另一端。但是,当我向某个队列发送一条消息并创建生产者时。然后发现客户端的出行路径一直到Kaazing & MQ。有谁能告诉我解决方案。
客户端网关详细信息。
<service>
<name>proxy-connection</name>
<accept>tcp://172.19.xx.xx:50505/</accept>
<type>proxy</type>
<properties>
<connect>
ws://192.168.yy.yy:8010/
</connect>
</properties>
</service>
<service-defaults>
<accept-options>
<http.bind>8000</http.bind>
<ws.bind>8010</ws.bind>
</accept-options>
</service-defaults>服务器端网关详细信息
<service>
<name>proxy-connection</name>
<accept>ws://192.168.yy.yy:8010/</accept>
<type>proxy</type>
<properties>
<connect>
tcp://10.a.b.c:50505/
</connect>
</properties>
</service>
<service-defaults>
<accept-options>
<http.bind>8000</http.bind>
<ws.bind>8010</ws.bind>
</accept-options> 为了发送消息,我们创建了一个小的java脚本客户端,通过JMS连接工厂进行连接,并在发送消息之前创建一个包含生产者和消费者的主题。但是,在另一端没有收到任何消息,但所有消息都显示在客户端的MQ下。请提个建议。
发布于 2014-11-07 15:25:47
10/8、172.16/12和192.168/16都是内网网段。我猜您需要外部ip地址才能将消息发送到另一端。
如果这是它应该看起来的样子:
client <--tcp--> gateway <---ws/internet---> gateway <--tcp--> server那么tcp连接是本地的(内网ip也可以),但是ws连接需要使用公网ip。
下面是一个私有ip地址:
ws://192.168.yy.yy:8010/所有连接都不会离开您的客户端。这不能是您的服务器的ip地址...除非您的服务器也在同一本地网络上。
相关漫画:http://xkcd.com/742/
发布于 2014-11-18 11:06:09
如果您只想在WebSocket上代理任何TCP流量,则您的网关配置看起来有一个语法错误。对于客户端,您的服务定义应为:
<service>
<name>proxy-connection</name>
<accept>tcp://172.19.xx.xx:50505/</accept>
<connect>ws://192.168.yy.yy:8010/proxy</connect>
<type>proxy</type>
</service>服务器网关应为:
<service>
<name>proxy-connection</name>
<accept>ws://192.168.yy.yy:8010/proxy</accept>
<connect>tcp://10.a.b.c:50505/</connect>
<type>proxy</type>
</service>但正如其他人所说,客户端网关必须能够访问192.168.yy.yy:8010。然后,您的客户端程序将连接到172.19.xx.xx:50505上的套接字,并且TCP流将在监听10.a.b.c:50505的服务器上重放。我假设您有一个ActiveMQ代理监听10.a.b.c:50505上的套接字,并且有一些ActiveMQ客户端连接到它认为正在172.19.xx.xx:50505上运行的代理。正如其他人所指出的,您确实希望客户端连接引用可公开访问的IP或主机名,并且服务器端上的接受URL与来自客户端的连接地址相匹配。
您使用哪种客户端语言通过网络连接到ActiveMQ?你可能想看看Kaazing的JMS版本,它使用JMS将ActiveMQ (或任何JMS代理)直接扩展到许多客户端(Java、JavaScript、.Net/Silverlight、Objective-C、Dalvik、Flash/Flex.这允许您在客户端程序中直接在web上使用JMS API,而无需运行第二个网关。
我为Kaazing工作,如果你需要更多的帮助或回答更多的问题,请告诉我。
https://stackoverflow.com/questions/26795985
复制相似问题