我已在Apache ActiveMQ
上安装了VPS ( virtual private server)
,现在的问题是当我尝试使用以下TCP网址在Android中建立连接时
" TCP://134.12.333.44@61616" //无法连接
" TCP://134.12.333.44@1883" //无法连接
但我无法连接它并在android
中获得以下异常 MqttException: MQIsdp ClientId > 23 bytes
这是我的activemq.xml的内容
<transportConnectors>
<!-- DOS protection, limit concurrent connections to 1000 and frame size to 100MB -->
<transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
<transportConnector name="amqp" uri="amqp://0.0.0.0:5672?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
<transportConnector name="stomp" uri="stomp://0.0.0.0:61613?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
<transportConnector name="mqtt" uri="mqtt://0.0.0.0:1883?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
<transportConnector name="ws" uri="ws://0.0.0.0:61614?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
</transportConnectors>
当我在网络外访问ActiveMQ时,我已经通过我的服务器更改了以上配置 即 134.12.333.44 (这是一个假的ip只是为了展示一个例子)
<transportConnector name="openwire" uri="tcp://134.12.333.44:61616?
maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
<transportConnector name="mqtt" uri="mqtt://134.12.333.44:1883?
maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
答案 0 :(得分:0)
如果您的Android客户端是MQTT,那么尝试连接到端口61616绝对不会起作用,因为这是您配置的OpenWire传输连接器,所以不要这样做。至于到1883的连接,您可能需要在防火墙上打开端口,因为我在您的问题中没有看到任何对该步骤的引用。
仅仅因为您在ActiveMQ上配置了这些端口并不能让外部世界访问它们。您需要配置或让您的网络管理员配置防火墙以允许该端口上的流量。