无法通过networking连接到蚊子
我在Linux上安装了带有websokets支持的最新的Mosquitto MQTT代理,并且编辑configuration文件来为websocket添加一个监听器。
我将这些行添加到configuration文件中:
listener 1883 protocol mqtt listener 1884 protocol websockets
当我跑步
sudo /usr/local/sbin/mosquitto -c /etc/mosquitto/mosquitto.conf
代理启动,控制台中的其中一行显示
Opening websockets listen socket on port 1884.
并没有进一步的错误。 我认为websocket的听众应该已经开始运行了。 当我用Node.js中的mqtt.jstesting代理时,mqtt运行良好,但是我无法通过websocket连接到代理。
JS代码:
var wsClient = mqtt.connect('ws://my.server.address:1884') wsClient.on('connect', function(){ console.log('ws connected') }) wsClient.on('error', function(err) { console.log(err) })
运行JS代码后,我看到没有错误或连接的消息。 经纪人也没有显示任何关于ws连接的消息。
奇怪的是,我把这个工作全部用在另一个Ubuntu系统上,但是在这个系统上,只有一个Red Hat系统,只有mqtt连接正在工作,ws似乎没有工作,但是两边都没有显示错误。
什么可能导致这个问题?
谢谢。
UPDATE
我试图在代理服务器上运行该程序,使用ws://127.0.0.1:1884
作为目标,并将其连接。 但从远程机器,说我的笔记本电脑或其他服务器,websokcets仍然无法正常工作。
在咨询了VPS的服务提供商之后,我确信我的代码或代理没有任何问题。 就像@hardillb所说,这是服务器上的防火墙问题。 服务提供商阻止了所有的HTTP传输,因此客户端无法与服务器build立WebSocket连接。