Linux Can';t通过WebSocket连接到MOSQUITO

Linux Can';t通过WebSocket连接到MOSQUITO,linux,node.js,websocket,mqtt,mosquitto,Linux,Node.js,Websocket,Mqtt,Mosquitto,我在Linux上安装了最新的MOSQUITO MQTT代理,支持websokets,并编辑配置文件以添加WebSocket的侦听器 我将以下行添加到配置文件: listener 1883 protocol mqtt listener 1884 protocol websockets 当我跑的时候 sudo /usr/local/sbin/mosquitto -c /etc/mosquitto/mosquitto.conf 代理启动,控制台中的一行显示 Opening websockets l

我在Linux上安装了最新的MOSQUITO MQTT代理,支持websokets,并编辑配置文件以添加WebSocket的侦听器

我将以下行添加到配置文件:

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.js测试代理时,mqtt工作得很好,但我无法通过websockets连接到代理

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-connection的消息

奇怪的是,我在另一个Ubuntu系统上运行了整个程序,但在这一个红帽系统上,只有mqtt连接在工作,ws似乎不工作,但两边都没有显示错误

是什么导致了这个问题

THX

更新


我尝试在代理所在的服务器上运行该程序,使用
ws://127.0.0.1:1884
作为目标,然后它连接起来。但是在远程机器上,比如我的笔记本电脑或其他服务器上,WebSokCET仍然无法工作。

在咨询VPS的服务提供商后,我确信我的代码或代理没有问题。正如@hardillb所说,这是服务器上的防火墙问题。服务提供商阻止了所有HTTP传输,因此客户端无法与服务器建立websocket连接。

您让它尝试连接多久了?如果你把它放久一点,你会收到超时消息吗?@Leon,是的,我运行了
sudo netstat-lnp | grep 1884
,它显示mosquitto正在监听该端口。@hardillb,我让它尝试连接大约5或6分钟,没有超时错误。我尝试收听
close
offline
事件,发现它偶尔会断开连接,并立即尝试重新连接。但是,从未触发错误事件。服务器上的防火墙规则?