我有一个基于javascript的WebApp,其中包括Eclipse Paho客户端。
WebApp在NGINX服务器上存储和执行。在安装web服务器的同一台服务器上,MQTT代理正在运行。我已经将端口8884定义为安全连接的侦听器端口。
使用——cafile和-p 8884运行蚊to_sub(简单的C客户端)可以正常工作!
现在我想通过在我的MQTT客户端实现中传递mqttOptions = {useSSL: true}来保护使用SSL的WebApp。
我可以看到应用程序正在尝试建立连接到wss://ip而不是ws://ip。但是服务器响应一个连接被拒绝,这是完全清楚的,因为我没有在web服务器上配置任何东西,因为我不知道如何管理这个。wss连接会被"映射"到https或其他东西吗?我需要一个websocket代理在NGINX吗?谢谢你的帮助。
您不能为带有蚊子的websockets的原始MQTT和MQTT使用相同的端口,您需要创建2个单独的侦听器。
您可以连接到mosquito - to_sub这一事实意味着您只使用原始MQTT设置了一个侦听器。
。
listener 8883
listener 8884
protocol websockets
这将在8883上创建一个本机MQTT侦听器,并在端口8884上通过websockets创建一个MQTT
我照做了。以下是蚊子的信息输入:
listener 8884 127.0.0.1
protocol websockets
cafile /path/to/ca.crt
certfile /path/to/certfile.crt
keyfile /path/to/keyfile.key
require_certificate false
所以应用程序试图连接到myip:8884