如何将安全的 Web 套接字与 mosquitto 和 JS 一起使用?
How to use Secured Web Sockets with mosquitto and JS?
我有一个 JS 前端连接到 MQTT 服务器(mosquitto
) with the help of the Paho JavaScript Client。这很好用,我可以发布和收听主题。
我现在想将 Web 套接字连接升级为安全连接。
为此,我在 /etc/mosquitto/mosquitto.conf
中添加了 certfile
和 keyfile
的条目:
pid_file /var/run/mosquitto.pid
persistence true
persistence_location /var/lib/mosquitto/
log_dest file /var/log/mosquitto/mosquitto.log
include_dir /etc/mosquitto/conf.d
listener 1883
listener 1884
protocol websockets
# above is the working, non-wss configuration
certfile /etc/mosquitto/wildcard.crt
keyfile /etc/mosquitto/wildcard.key
假设这是正确的配置,我如何在 JS 中创建一个考虑安全连接的客户端?对于现有的,我有
client = new Paho.MQTT.Client("10.10.10.10", 1884, Math.random().toString(16).substring(7))
并且没有看到要在此处传递的任何其他配置?
来自docs
您有多种选择:
声明新客户端时的 host
可以是 URI 而不仅仅是 ip/hostname
client = new Paho.MQTT.Client("wss://10.10.10.10:1884", Math.random().toString(16).substring(7));
您可以在 client.connect(options)
选项对象中使用 useSSL
标志。
client.connect({
useSSL: true
});
我有一个 JS 前端连接到 MQTT 服务器(mosquitto
) with the help of the Paho JavaScript Client。这很好用,我可以发布和收听主题。
我现在想将 Web 套接字连接升级为安全连接。
为此,我在 /etc/mosquitto/mosquitto.conf
中添加了 certfile
和 keyfile
的条目:
pid_file /var/run/mosquitto.pid
persistence true
persistence_location /var/lib/mosquitto/
log_dest file /var/log/mosquitto/mosquitto.log
include_dir /etc/mosquitto/conf.d
listener 1883
listener 1884
protocol websockets
# above is the working, non-wss configuration
certfile /etc/mosquitto/wildcard.crt
keyfile /etc/mosquitto/wildcard.key
假设这是正确的配置,我如何在 JS 中创建一个考虑安全连接的客户端?对于现有的,我有
client = new Paho.MQTT.Client("10.10.10.10", 1884, Math.random().toString(16).substring(7))
并且没有看到要在此处传递的任何其他配置?
来自docs
您有多种选择:
声明新客户端时的
host
可以是 URI 而不仅仅是 ip/hostnameclient = new Paho.MQTT.Client("wss://10.10.10.10:1884", Math.random().toString(16).substring(7));
您可以在
client.connect(options)
选项对象中使用useSSL
标志。client.connect({ useSSL: true });