2.0.16 • Published 4 years ago

@i5920/uni-socket-promise v2.0.16

Weekly downloads
17
License
MIT
Repository
-
Last release
4 years ago

uni-socket-promise

使用范围

仅支持uniapp

安装

npm i @i5920/uni-socket-promise -S

亮点

  • promise异步获取结果
  • 断线重连
  • 心跳
  • 断线消息队列
  • debug
  • 支持typescript

使用说明

  • App.vue
import UniSocketPromise from "@i5920/uni-socket-promise"
export default {
  globalData:{
    socket:null
  },
  onLaunch() {
    this.globalData.socket = new UniSocketPromise({
        url: "ws://127.0.0.1:8080"
    });
  },
  // 必须在这里调用initSocket方法
  onShow() {
    // 连接socket
    this.globalData.socket.initSocket();
    // 登录
    this.loginDemo();
  },
  methods:{
    // 发送socket消息
    loginDemo(){
      this.globalData.socket.send("login",{
          "username":"okcoder",
          "password":"666666"
      },{
        'token':"12345"
      }).then(_=>{
          console.warn(_)
      });
    },
    // 主动关闭socket
    closeSocket(){
      this.globalData.socket.close();
    }
  }
}
  • 其它页面
getApp().globalData.socket.send("事件名称",{
    "username":"okcoder",
    "password":"666666"
}).then(_=>{
    console.warn(_)
});
  • 后端格式要求
{
    event:"标识",   // 要求根据前端发送的数据进行组合加密 -> md5(事件名称字符串+参数字符串)
    data:"数据"
}

方法说明

  • initSocket(success, fail)
    • 初始化websocket
    • 判断websocket是否连接
    • 参数
      1. success 连接成功,如果是第一次则open可能还没有打开
      2. fail 连接失败
  • send(event,data,extraData)
    • 发送socket消息
    • 参数
      1. event:string 事件名称
      2. data?:object 请求参数,必须json对象或者空对象{}或者不传值
      3. extraData?:object 同级参数
  • close({code,reason,success,fail,complete})

    • 主动关闭socket
    • 参数(对象)
      1. code?: number
      2. reason?: string
      3. success?: Function
      4. fail?: Function
      5. complete?: Function
  • 如果发送其它格式的消息直接使用uni.sendSocketMessage()

参数说明

参数类型必填默认值说明
urlstring-websocket地址,如ws://127.0.0.1:8080
debugboolean开发环境自动打开调试开关
headerobject-参考https://uniapp.dcloud.io/api/request/websocket?id=connectsocket
methodstring-参考https://uniapp.dcloud.io/api/request/websocket?id=connectsocket
protocolsstring[]-参考https://uniapp.dcloud.io/api/request/websocket?id=connectsocket
isReconnectbooleantrue是否断线重连
reConnectTimenumber3000断线重连间隔时间,毫秒
isHeartDatabooleantrue是否发送心跳
heartTimenumber3000心跳包间隔事件,毫秒
回调方法参数说明
onSocketOpencallback(header)监听到socket打开事件
onSocketClosecallback(res)监听到socket被关闭事件
onSocketErrorcallback(res)监听到socket出错事件
onSendMessageBeforecallback(message)发送消息前事件,必须返回{event:"",data:''},因为要继续下面的逻辑
onSendMessageAftercallback(message)发送消息后事件
onSocketMessageBeforecallback(data)收到消息前事件,如果返回true则继续逻辑,返回false则终止逻辑,千万注意如果要继续逻辑必须返回true
onSocketMessageAftercallback(data,pool)data为接收到的数据,pool为当前线程池,含promise方法

赞助二维码

npm.io npm.io

更新日志

  • v2.0.16

    1. 优化onSocketMessageAfter方法回调优化
  • v2.0.14

    1. 修复在app端第一次接收到数据后无法再次接收的问题
  • v2.0.13

    1. 新增网络检测 注意:由于官方bug,iOS网络检测有问题
    2. 优化逻辑优化
  • v2.0.12

    1. 优化send方法 data参数必须是json对象或者空对象{}或者不传值,默认发送空字符,方便后端解析与md5加密统一
  • v2.0.9

    1. bugutility插件不给力,改为md5-ts
  • v2.0.8

    1. bugPool使用完后立马删除
  • v2.0.7

    1. bugsend方法添加同级请求参数
  • v2.0.6

    1. 优化send方法添加同级请求参数
  • v2.0.5

    1. 优化onSocketMessageBefore如果返回true可继续逻辑,返回false则终止逻辑
2.0.16

4 years ago

2.0.13

4 years ago

2.0.14

4 years ago

2.0.12

4 years ago

2.0.11

4 years ago

2.0.10

4 years ago

2.0.7

4 years ago

2.0.9

4 years ago

2.0.8

4 years ago

2.0.6

4 years ago

2.0.5

4 years ago

2.0.4

4 years ago

2.0.3

4 years ago

2.0.2

4 years ago

1.0.1

4 years ago

1.0.0

4 years ago