更新记录

v2.0.0(2020-01-02)

  1. 支持typescript
  2. 修复遗留bug

v1.0.2(2019-12-31)

没啥变化就是不小心写错了使用说明,修改一下

v1.0.1(2019-12-30)

uni-socket

介绍

uni-app的socket完全封装

特点:

  1. 断线重连
  2. 自定义心跳
  3. 网络检测
  4. 断线消息队列
  5. debug

安装教程

npm i @i5920/uni-socket -S

使用说明

import uniSocket from "@i5920/uni-socket";

export default {
  globalData: {
    socket: null
  },
  onLaunch: function() {
    // 初始化socket配置
    this.initSocket();
  },
  onShow: function() {
    // 连接socket
    this.globalData.socket.initSocket();
  },
  methods:{
    initSocket(){
      let socket = new websocket({
          url: "ws://127.0.0.1:8080",
          timeout: 1 * 60 * 1000,   // 心跳时间间隔
          isSendHeart: true,        // 是否发送心跳
          heartData: "ping",        // 心跳数据
          isReconnection:true,      // 是否断线重连
          reConnectTime: 3000,      // 断线重连检测时间间隔
          params: {                 // 发送消息时如果时json则自动加上组合里面参数
            token: this.$store.state.user.TOKEN
          },
          debug: process.env.NODE_ENV === "development",  // debug
          onSocketOpen: header => {},
          onSocketMessage: data => {},
          onSocketError:res => {},
          onSocketClose:res => {}
      });
      this.globalData.socket = socket;
    }
  }
}
查看更多

平台兼容性

uni-socket

介绍

uni-app的socket完全封装

之所以写这个类,是因为之前用别人的插件总是出现莫名其妙死掉,比如黑屏截屏等操作后就挂了,现在封装的这个目前运行良好,请大家检测

特点:

  1. 断线重连
  2. 自定义心跳
  3. 网络检测
  4. 断线消息队列
  5. debug
  6. 支持typescript

安装教程

npm i @i5920/uni-socket -S

使用说明

import UniSocket from "@i5920/uni-socket";

export default {
  onLaunch() {
    this.globalData.socket = new UniSocket({
        url: "ws://127.0.0.1:8080",
        timeout: 1 * 60 * 1000,   // 心跳时间间隔
        isSendHeart: true,        // 是否发送心跳
        heartData: "ping",        // 心跳数据
        isReconnection:true,      // 是否断线重连
        reConnectTime: 3000,      // 断线重连检测时间间隔
        params: {                 // 发送消息时如果时json则自动加上组合里面参数
          // token: this.$store.state.user.TOKEN
        },
        debug: process.env.NODE_ENV === "development",  // debug
        onSocketOpen: header => {},
        onSocketMessage: data => {},
        onSocketError:res => {},
        onSocketClose:res => {}
    });
  },
  // on Show 在uniapp插件市场不显示?
  // 必须在这里调用initSocket方法
  on Show() {
    // 连接socket
    this.globalData.socket.initSocket();
    // 登录
    this.loginDemo();
  },
  methods:{
    // 发送socket消息
    loginDemo(){
      this.globalData.socket.sendSocketMessage({
        event:"login",
        data:{
          "username":"okcoder",
          "password":"666666"
        }
      });
    },
    // 主动关闭socket
    closeSocket(){
      this.globalData.socket.closeSocket();
    }
  }
}

// 其它页面
getApp().globalData.socket.sendSocketMessage({
  event:"login",
  data:{
    "username":"okcoder",
    "password":"666666"
  }
});

赞助二维码

隐私、权限声明

1. 本插件需要申请的系统权限列表:

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

socket长链接

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

许可协议

MIT协议

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问