【发布时间】:2017-02-21 17:45:44
【问题描述】:
由于遗留原因,我在 vanilla tcp 传输协议上使用了 Broker/Publisher 的 Java activeMQ 实现。我希望将 Python 客户端连接到它,但是所有基于“stomp”的文档似乎都没有它,而不是通过 stomp 协议,当我尝试基本示例时,我在 Java Broker 方面得到了错误:
[ActiveMQ Transport: tcp:///127.0.0.1:62860@5001] WARN org.apache.activemq.broker.TransportConnection.Transport - Transport Connection to: tcp://127.0.0.1:62860 failed: java.io.IOException: Unknown data type: 80
Broker 代码在 Java 中非常普通:
String localVMurl = "vm://localhost";
String remoterURL = "tcp://localhost:5001";
BrokerService broker = new BrokerService();
broker.addConnector(localVMurl);
broker.addConnector(remoterURL);
broker.setAdvisorySupport(true);
broker.start();
ConnectionFactory connectionFactory = new ActiveMQConnectionFactory(localVMurl+"?create=false");
Connection connection = connectionFactory.createConnection();
Python 就失败了。仅使用来自 Python 的基本“tcp://localhost:”连接,我似乎无法在网上找到任何东西。我在这里做错了吗?
import stomp
class MyListener(stomp.ConnectionListener):
def on_error(self, headers, message):
print('received an error "%s"' % message)
def on_message(self, headers, message):
print('received a message "%s"' % message)
conn = stomp.Connection(host_and_ports = [('localhost', 5001)])
conn.start()
conn.connect('admin', 'password', wait=True)
我得到了错误:
IndexError: list index out of range
【问题讨论】:
标签: java python tcp activemq stomp