|
|
@@ -5,8 +5,8 @@
|
|
|
|
|
|
// 文本消息
|
|
|
socketTask: null,
|
|
|
- urlData: "ws://114.115.147.140:12345/api/api_gateway?method=control_center.real_time.im_message",
|
|
|
- // urlData: "ws://192.168.1.17:12345/api/api_gateway?method=control_center.real_time.im_message",
|
|
|
+ // urlData: "ws://114.115.147.140:12345/api/api_gateway?method=control_center.real_time.im_message",
|
|
|
+ urlData: "ws://192.168.1.17:12345/api/api_gateway?method=control_center.real_time.im_message",
|
|
|
is_open_socket: false, // 确保websocket是打开状态
|
|
|
list: [],
|
|
|
userId: null, // 用户ID
|
|
|
@@ -17,7 +17,8 @@
|
|
|
// 测试 - 心跳检测
|
|
|
status: null, // websocket是否关闭
|
|
|
lockReconnect: false, // 避免重复连接
|
|
|
- timeout: 5000, // 多少秒执行监测
|
|
|
+ // timeout: 5000, // 多少秒执行监测
|
|
|
+ timeout: 10000, // 多少秒执行监测
|
|
|
timeoutObj: null, // 检测服务器端是否还活着
|
|
|
reconnectTimeOutObj: null, // 重连之后多久再次重连
|
|
|
// 测试
|
|
|
@@ -46,12 +47,20 @@
|
|
|
},
|
|
|
onShow: function() {
|
|
|
// App展示在前台
|
|
|
- // console.log('App Show')、
|
|
|
+ console.log('+++++++++++++++++++App Show-------------------------------------')
|
|
|
+ // this.close() // 先关闭
|
|
|
+ // if (this.globalData.socketTask == null && this.globalData.token !== '') {
|
|
|
+ // this.msgInit();
|
|
|
+ // } else if (this.globalData.socketTask !== null) {
|
|
|
+ // this.close() // 先关闭
|
|
|
+ // this.msgInit(); // 再进行请求
|
|
|
+ // }
|
|
|
+ // console.log(this.globalData.socketTask)
|
|
|
+
|
|
|
+ // this.msgInit(); // 再进行请求
|
|
|
},
|
|
|
onHide: function() {
|
|
|
// App不再再展示在前台
|
|
|
- // console.log('App Hide')
|
|
|
- this.close()
|
|
|
},
|
|
|
methods: {
|
|
|
// 实时通信 - 初始化
|
|
|
@@ -61,7 +70,7 @@
|
|
|
that.globalData.socketTask = uni.connectSocket({
|
|
|
url: this.globalData.urlData + "&token=" + that.globalData.token,
|
|
|
success(data) {
|
|
|
- // console.log("websocket连接成功");
|
|
|
+ console.log("websocket连接中");
|
|
|
}
|
|
|
});
|
|
|
|
|
|
@@ -72,8 +81,10 @@
|
|
|
'data': {}
|
|
|
}
|
|
|
that.globalData.socketTask.onOpen((res) => {
|
|
|
+ console.log('websocket开启了')
|
|
|
// 清除重连定时器
|
|
|
- clearInterval(that.globalData.reconnectTimeOutObj)
|
|
|
+ // clearInterval(that.globalData.reconnectTimeOutObj)
|
|
|
+ that.notReconnect()
|
|
|
// 开启检测
|
|
|
that.start()
|
|
|
that.globalData.socketTask.send({
|
|
|
@@ -91,6 +102,7 @@
|
|
|
that.globalData.socketTask.onMessage((res) => {
|
|
|
console.log("收到服务器内容:");
|
|
|
var val = JSON.parse(res.data)
|
|
|
+ console.log('这是返回的内容---------', val)
|
|
|
if (val.action == 'list') {
|
|
|
var obj1 = {
|
|
|
'action': 'list', // 动作标识,必填
|
|
|
@@ -103,46 +115,41 @@
|
|
|
that.globalData.socketTask.send({
|
|
|
data: JSON.stringify(obj1),
|
|
|
async success(res) {
|
|
|
- // console.log("消息发送成功");
|
|
|
},
|
|
|
});
|
|
|
} else if (val.action == 'none') {
|
|
|
- // console.log('进入了')
|
|
|
+ console.log('进入了none')
|
|
|
that.globalData.list = val.data
|
|
|
- // console.log(that.globalData.list)
|
|
|
this.$store.state.list = val.data
|
|
|
- // console.log(this.$store.state.list)
|
|
|
} else if (val.action == 'recv_video') {
|
|
|
- // console.log(val.data)
|
|
|
that.globalData.video = val.data
|
|
|
this.$store.state.video = val.data
|
|
|
- // console.log(this.$store.state.video)
|
|
|
}
|
|
|
|
|
|
|
|
|
this.reset();
|
|
|
console.log('消息可正常接收');
|
|
|
});
|
|
|
- // console.log(that.socketTask)
|
|
|
|
|
|
// 连接断开
|
|
|
// 如果希望websocket连接一直保持,在close或者error上绑定重新连接方法。
|
|
|
this.globalData.socketTask.onClose((res) => {
|
|
|
console.log(res, '连接关闭');
|
|
|
+ clearInterval(this.globalData.timeoutObj);
|
|
|
that.reconnect();
|
|
|
})
|
|
|
|
|
|
// 连接失败
|
|
|
that.globalData.socketTask.onError((res) => {
|
|
|
console.log(res, '连接错误');
|
|
|
+ clearInterval(this.globalData.timeoutObj);
|
|
|
that.reconnect();
|
|
|
})
|
|
|
},
|
|
|
|
|
|
// 心跳机制
|
|
|
start() {
|
|
|
- // console.log(this.globalData.timeoutObj)
|
|
|
- // console.log('进入心跳机制了', this.globalData.timeout)
|
|
|
+ var that = this
|
|
|
this.globalData.timeoutObj = setInterval(() => {
|
|
|
//这里发送一个心跳,后端收到后,返回一个心跳消息,
|
|
|
//onmessage拿到返回的心跳就说明连接正常
|
|
|
@@ -151,8 +158,14 @@
|
|
|
'recv_user_id': '', // 接收人用户id, 非必填
|
|
|
'data': {}
|
|
|
}
|
|
|
- this.globalData.socketTask.send(JSON.stringify(obj));
|
|
|
- // console.log('进入心跳机制了', this.globalData.timeout)
|
|
|
+ that.globalData.socketTask.send({
|
|
|
+ data: JSON.stringify(obj),
|
|
|
+ async success(res) {
|
|
|
+ that.globalData.is_open_socket = true
|
|
|
+ console.log('消息发送成功1111')
|
|
|
+ }
|
|
|
+ });
|
|
|
+ console.log('进入心跳机制了', this.globalData.timeout)
|
|
|
}, this.globalData.timeout)
|
|
|
},
|
|
|
// 清除心跳机制
|
|
|
@@ -181,11 +194,19 @@
|
|
|
this.lockReconnect = false;
|
|
|
}, 4000);
|
|
|
},
|
|
|
+
|
|
|
+ // 清除重连
|
|
|
+ notReconnect() {
|
|
|
+ clearInterval(this.globalData.reconnectTimeOutObj)
|
|
|
+ },
|
|
|
|
|
|
// 手动关闭
|
|
|
close() {
|
|
|
+ var that = this
|
|
|
console.log('已经手动关闭了')
|
|
|
- this.globalData.socketTask.close()
|
|
|
+ that.globalData.socketTask.close()
|
|
|
+ clearInterval(that.globalData.timeoutObj);
|
|
|
+ clearInterval(that.globalData.reconnectTimeOutObj);
|
|
|
},
|
|
|
},
|
|
|
}
|