appservice?t=1533630357896:1032 WebSocket connection to ‘wss://36.41.188.53/mqtt’ failed: Error in connection establishment: net::ERR_CONNECTION_TIMED_OUT
我在微信小程序中是用mqtt协议,通过nginx代理监听443端口,在本地测试通过,但是在连接服务器是报上述异常,可以ping通ip,telnet也可以连接服务器也正常,MQ使用的是emqttd,恳请各位大佬指点。
// pages/connect/connect.js
var app = getApp();
var MQTT = require("…/…/utils/paho-mqtt.js");
Page({
/**
* 页面的初始数据
*/
data: {
server_addr: ‘36.41.188.53’,
user_name: “test”,
user_psw: [‘1’,‘2’,‘3’,‘4’,‘5’,‘6’,‘7’,‘8’,‘9’],
error_message: ‘’,
switch_checked: false,
btn_loading: false
},
server_addr_input: function(e) {
//console.log(e);
this.setData({
server_addr: e.detail.value
});
},
user_name_input: function(e) {
//console.log(e);
this.setData({
user_name: e.detail.value
});
},
user_psw_input: function(e) {
//console.log(e);
this.setData({
user_psw: e.detail.value
});
},
switch_change: function(e) {
//console.log(e);
this.setData({
switch_checked: e.detail.value
});
},
btn_connect: function() {
//查看输入是否为空,设置错误信息
if (this.data.server_addr == ‘’ || this.data.server_addr == null) {
this.setData({
error_message: “server address can not be empty!”
});
return;
}
if (this.data.switch_checked) {
if (this.data.user_name == null || this.data.user_name == ‘’) {
this.setData({
error_message: “user name can not be empty!”
});
return;
}
if (this.data.user_psw == null || this.data.user_psw == ‘’) {
this.setData({
error_message: “user password can not be empty!”
});
return;
}
}
//reset error message
if (this.data.error_message) {
this.setData({
error_message: ‘’
});
}
//在按钮上显示加载标志
this.setData({
btn_loading: true
});
var client = new MQTT.Client(“ws://” + this.data.server_addr + “/mqtt”, “mqttjs” + Math.random().toString(36).substr(2));
var that = this;
//connect to MQTT broker
var connectOptions = {
timeout: 10,
useSSL: true,
cleanSession: true,
keepAliveInterval: 30,
reconnect: true,
userName: “test”,
password: “123456789”,
onSuccess: function() {
console.log(‘connected’);
app.globalData.mqtt_client = client;
client.onMessageArrived = function(msg) {
if (app.globalData.messages != null) {
app.globalData.messages = [{
topic: msg.topic,
humidity: msg.payloadString.toString().substr(6, 2),
temperature: msg.payloadString.toString().substr(15, 2),
doorLock: msg.payloadString.toString().substr(24, 1),
socket: msg.payloadString.toString().substr(32, 1),
}].concat(app.globalData.messages);
}
}
client.onConnectionLost = function(responseObject) {
if (typeof app.globalData.onConnectionLost === ‘function’) {
return app.globalData.onConnectionLost(responseObject);
}
if (responseObject.errorCode !== 0) {
console.log(“onConnectionLost:” + responseObject.errorMessage);
}
}
//去除按钮上的加载标志
that.setData({
btn_loading: false
});
wx.switchTab({
url: ‘…/subscribe/subscribe’,
});
},
onFailure: function(option) {
console.log(option);
//去除按钮上的加载标志
that.setData({
btn_loading: false
});
wx.showModal({
//title: msg.destinationName,
content: option.errorMessage
});
}
};
if (this.data.switch_checked) {
connectOptions.userName = this.data.user_name;
connectOptions.password = this.data.user_psw;
}
client.connect( );
},
/**
* 生命周期函数–监听页面加载
*/
onLoad: function(options) {
},
/**
* 生命周期函数–监听页面初次渲染完成
*/
onReady: function() {
},
/**
* 生命周期函数–监听页面显示
*/
onShow: function() {
if (app.globalData.mqtt_client != null) {
wx.reLaunch({
url: ‘…/subscribe/subscribe’,
});
return;
}
}
})