|
@@ -0,0 +1,161 @@
|
|
|
+/**
|
|
|
+ * @param {string} url
|
|
|
+ * @param {Function} success
|
|
|
+ * @param {Function} fail
|
|
|
+ * @description 创建新的scoket链接
|
|
|
+ */
|
|
|
+
|
|
|
+export function scoketNew(url, success = function() {}, fail = function() {}) {
|
|
|
+ const scoket = uni.connectSocket({
|
|
|
+ url,
|
|
|
+ success,
|
|
|
+ fail
|
|
|
+ });
|
|
|
+ return {
|
|
|
+ scoket,
|
|
|
+ scoketOpen,
|
|
|
+ scoketSend,
|
|
|
+ scoketClose,
|
|
|
+ scoketMessage
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+/**
|
|
|
+ * @param {Object} scoket 会话对象
|
|
|
+ */
|
|
|
+export function scoketOpen() {
|
|
|
+ let that = this;
|
|
|
+ return new Promise((resolve, rejact) => {
|
|
|
+ that.scoket.onOpen(res => {
|
|
|
+ resolve(res)
|
|
|
+ })
|
|
|
+ })
|
|
|
+}
|
|
|
+// 发送消息
|
|
|
+/**
|
|
|
+ * @param {Object} data 发送的数据
|
|
|
+ */
|
|
|
+export function scoketSend(data) {
|
|
|
+ let that = this;
|
|
|
+ return new Promise((resolve, rejact) => {
|
|
|
+ that.scoket.send({
|
|
|
+ data: JSON.stringify(data),
|
|
|
+ success: res => {
|
|
|
+ resolve(res)
|
|
|
+ },
|
|
|
+ fail: res => {
|
|
|
+ rejact(res)
|
|
|
+ },
|
|
|
+ });
|
|
|
+ })
|
|
|
+
|
|
|
+}
|
|
|
+/**
|
|
|
+ * @@description 关闭会话链接
|
|
|
+ */
|
|
|
+export function scoketClose() {
|
|
|
+ this.scoket.close({
|
|
|
+ success(res) {
|
|
|
+ console.log('关闭成功', res);
|
|
|
+ },
|
|
|
+ fail(err) {
|
|
|
+ console.log('关闭失败', err);
|
|
|
+ }
|
|
|
+ })
|
|
|
+}
|
|
|
+/**
|
|
|
+ * @@description 监听会话
|
|
|
+ */
|
|
|
+export function scoketMessage(fun) {
|
|
|
+ this.scoket.onMessage(res => {
|
|
|
+ const data = JSON.parse(res.data);
|
|
|
+ if (data.code) {
|
|
|
+ if (+data.code == 60018) {
|
|
|
+ console.log('scoket返回错误',data);
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ fun(data)
|
|
|
+ }
|
|
|
+ });
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+// this.socketTask.onOpen(res => {
|
|
|
+// console.log('WebSocket连接正常打开中...!');
|
|
|
+// this.socketOpen = true;
|
|
|
+// // 注:只有连接正常打开中 ,才能正常收到消息
|
|
|
+// this.socketTask.onMessage(res => {
|
|
|
+// this.client_id = JSON.parse(res.data).client_id;
|
|
|
+// console.log(JSON.parse(res.data));
|
|
|
+// if (JSON.parse(res.data).code == 10501) {
|
|
|
+// console.log('服务器问题');
|
|
|
+// uni.showLoading({
|
|
|
+// title: '断线重连'
|
|
|
+// });
|
|
|
+// // this.closeSocket();
|
|
|
+// } else if (JSON.parse(res.data).code == 0) {
|
|
|
+// this.$api.msg(JSON.parse(res.data).msg);
|
|
|
+// } else {
|
|
|
+// console.log('连接成功');
|
|
|
+// // ls.content.indexOf('http')
|
|
|
+// let newmessage = JSON.parse(res.data);
|
|
|
+// let add_time = getTime(newmessage.timestamp)
|
|
|
+
|
|
|
+// newmessage = {
|
|
|
+// avatar: newmessage.avatar,
|
|
|
+// content: newmessage.content,
|
|
|
+// nickname: newmessage.nickname,
|
|
|
+// order_id: newmessage.order_id,
|
|
|
+// type: newmessage.m_type,
|
|
|
+// uid: newmessage.uid,
|
|
|
+// add_time: add_time
|
|
|
+// }
|
|
|
+
|
|
|
+// if (newmessage.type == 5) {
|
|
|
+// newmessage.content = newmessage.content.split(',');
|
|
|
+// newmessage.content[0].split('?')
|
|
|
+// }
|
|
|
+
|
|
|
+
|
|
|
+// if (newmessage.order_id == this.order_id) {
|
|
|
+// // let ques_name = this.que_url
|
|
|
+// this.MsgList = this.MsgList.concat(newmessage);
|
|
|
+// this.MsgList = this.MsgList.map(e => {
|
|
|
+// e.add_time = Date.parse(e.add_time).toString();
|
|
|
+// e.add_time = e.add_time.substr(0, 10);
|
|
|
+// return e;
|
|
|
+// });
|
|
|
+// for (let i = 0; i < this.MsgList.length; i++) {
|
|
|
+// let length = this.MsgList.length;
|
|
|
+// //当前记录时间
|
|
|
+// let newTime = this.MsgList[i].add_time;
|
|
|
+// //上一条记录时间
|
|
|
+// if (i + 1 < length) {
|
|
|
+// let lastTime = this.MsgList[i + 1].add_time;
|
|
|
+// let time = (this.MsgList[i + 1].add_time) - (this.MsgList[i].add_time);
|
|
|
+// if (time > 300) {
|
|
|
+// this.MsgList[i].time = true;
|
|
|
+// }
|
|
|
+// }
|
|
|
+// }
|
|
|
+// this.MsgList = this.MsgList.map(e => {
|
|
|
+// e.add_time = getTime(e.add_time);
|
|
|
+// return e;
|
|
|
+// });
|
|
|
+// console.log(334, this.MsgList)
|
|
|
+// }
|
|
|
+// this.$nextTick(function() {
|
|
|
+// this.scrollToBottom();
|
|
|
+// });
|
|
|
+// }
|
|
|
+// });
|
|
|
+// let join = '{"type":"handshake","role":"user","uid":' + this.userInfo.uid + '}';
|
|
|
+// console.log(join);
|
|
|
+// this.socketTask.send({
|
|
|
+// data: join,
|
|
|
+// success: res => {
|
|
|
+// console.log('消息发送成功');
|
|
|
+// }
|
|
|
+// });
|
|
|
+// });
|