需求
web项目部署在https服务上,该项目需要连接websocket服务,但是websocket服务是部署在http服务上。所以需要通过nginx代理wss协议。
js中MQttClient的options配置1
2
3
4
5
6
7
8
9var options = {
timeout: 3,
useSSL: true,
cleanSession: this.cleansession,
onSuccess: this.onConnect,
onFailure: function (message) {
setTimeout(this.MQTTconnect, this.reconnectTimeout);
}
};
nginx配置
1 | server { |
发现WebSocket协议和HTTP协议虽然不同,但是WebSocket协议的握手和HTTP是兼容的,它使用HTTP的Upgrade协议头将连接从HTTP连接升级到WebSocket连接。这个特性使得WebSocket应用程序可以很容易地应用到现有的基础设施。例如,WebSocket应用可以使用标准的80和443 HTTP端口
配置成功后,就可以进行wss连接:
success => Connected to xxx.xxx.com:443/wss/mqtt