微信小程序 websocket 封装

微信小程序 websocket 封装

今天又要写微信小程序,需要使用websocket,闲着没事封装一下吧,反正封装了也不会好用。

封装 websocket

首先在 page 文件夹下创建一个 js 文件夹存放封装的 websocket 请求,其实放哪里看自己需要,都行。
在 js 文件夹下创建一个 websocket.js 文件,里面是封装好的 websocket 代码,其实叫啥名都行,看你心情。

/**
 * TODO websocket封装
 * wjw
 * 2020年3月19日14:30:03
 */
const config = require('./config.js')
var app = getApp();
const host = config.websocketServer; // websocket服务器baseUrl
let sotk = null;
let socketOpen =false;

function ws_connect(reMsg){
  sotk = wx.connectSocket({
    url: config.websocketServer,
    header: {
      'content-type': 'application/json'
    }
  })

  sotk.onOpen(res => {
    socketOpen = true;
    // console.log('监听 WebSocket 连接打开事件。', res);
  })
  sotk.onClose(onClose => {
    socketOpen = false;
    // console.log('监听 WebSocket 连接关闭事件。', onClose)
  })
  sotk.onError(onError => {
    socketOpen = true;
    // console.log('监听 WebSocket 错误。错误信息', onError)
  })

  // 收到消息
  sotk.onMessage(onMessage => {
    // var data = JSON.parse(onMessage.data);
    reMsg(onMessage.data);
  })
}

function sendMsg(msg,success){
  if (socketOpen) {
    // console.log('通过 WebSocket 连接发送数据', JSON.stringify(msg))
    sotk.send({
      data: JSON.stringify(msg)
    }, function (res) {
      success(res)
    })
  }
}

module.exports.ws_connect = ws_connect;
module.exports.sendMsg = sendMsg;

在 上边文件中使用了一个config.js配置文件,我把服务器的连接扔里边了,方便维护,里面长这个逼样:

module.exports = {
  websocketServer:'ws://121.40.165.18:8800',  // 这个地址是测试的,得改成自己的
}

使用

首先在使用 websocket 的地方导入一下子

var websocket = require('../js/websocket.js')  // 这是问价路径,改成自己的

连接 websocket

// 连接websocket
    websocket.ws_connect((data)=>{
      console.log(data)
    })

发布消息

websocket.sendMsg('你好,我叫wjw',(data)=>{
      console.log(1111,data);
    })

差不多就是这样了,我觉得我这样封装的没意义,微信做的够好了~

posted @ 2020-03-19 16:26  我是ed  阅读(3456)  评论(0编辑  收藏  举报