123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161 |
- /**
- * @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('消息发送成功');
- // }
- // });
- // });
|