微信小程序 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 @   叫我+V  阅读(3562)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
点击右上角即可分享
微信分享提示