自定义构造函数

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/JaRiS_jade/article/details/79159798

自定义构造函数

微信小程序的socket连接

1.module

//连接socket
function connect(url){
  wx.connectSocket({
    url: url
  });
}
export var Socket = function(url) {
  this.events = {};//添加属性
  connect(url);//连接socket
  wx.onSocketMessage((res)=>{//=>避免this指向wx而不是Socket
    var data = null;
    try{
        data = JSON.parse(res.data);//将字符串转换为数组
    }catch(e){
    }
    if(data){
        var event_name = data[0];//监听socket接收服务器返回的信息,获取事件名
        if (this.events[event_name]) {//若事件名存在于events属性的对象中,则执行回调
          this.events[event_name](res.data[1]);
        }else{
          throw new Error('该事件不存在!');
        }
    }else{
        console.warn("Socket 响应内容为空!!!");
    }
  });
};
Socket.prototype={
  on:function(event_name,callback){//定义原型方法
    if (!this.events[event_name]){//如果不存在事件名,则在属性events里添加一个事件回调
      this.events[event_name] = callback;
    },
    send:function(data){//传送数据到socket服务器
        wx.sendSocketMessage({
          data: data,
          success:res=>{
            console.log(res,"socketSend");
          }
        });
      },
    close:function(){//关闭socket
        wx.closeSocket();
    }
  }
}

2.在js页面引入Socket

import { Socket } from '../../utils/socket.js';

3.调用Socket

 //创建socket连接
var socket = new Socket('连接地址');
//自定义socket中on函数的事件,实现当socket发送数据给客户端时客户端需要做的内容
socket.on("init", function(data) {
    console.log(data, 'init');
});

猜你喜欢

转载自blog.csdn.net/JaRiS_jade/article/details/79159798