更新记录

1.0.0(2021-01-04)

  1. 连接服务器端
  2. 停止连接服务器端
  3. 给服务器端发送消息
  4. 获取连接服务器端的状态
  5. globalEvent事件监听服务端的消息及连接情况

平台兼容性

Android Android CPU类型 iOS
适用版本区间:4.4 - 11.0 armeabi-v7a:未测试,arm64-v8a:未测试,x86:未测试 ×

原生插件通用使用流程:

  1. 购买插件,选择该插件绑定的项目。
  2. 在HBuilderX里找到项目,在manifest的app原生插件配置中勾选模块,如需要填写参数则参考插件作者的文档添加。
  3. 根据插件作者的提供的文档开发代码,在代码中引用插件,调用插件功能。
  4. 打包自定义基座,选择插件,得到自定义基座,然后运行时选择自定义基座,进行log输出测试。
  5. 开发完毕后正式云打包

付费原生插件目前不支持离线打包。
Android 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/android
iOS 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/ios

注意事项:使用HBuilderX2.7.14以下版本,如果同一插件且同一appid下购买并绑定了多个包名,提交云打包界面提示包名绑定不一致时,需要在HBuilderX项目中manifest.json->“App原生插件配置”->”云端插件“列表中删除该插件重新选择


概述

简介

连接WebSocket服务器端,接收、发送消息,获取连接状态,重连时间、次数、心跳设置。

功能服务

模块方法详细

startConnect

开始连接服务器端,若连接失败达到最大连接次数,即停止连接。

startConnect({params})

params

wsUrl:

  • 类型:字符串
  • 描述:(必填项)WebSocket服务器端地址。

isWSS:

  • 类型:布尔
  • 描述:(必填项)是否是WSS。
  • 取值范围:
    • true(是)
    • false(否)

reconnectTime:

  • 类型:数值
  • 描述:(可选项)当连接服务器端失败时,重新连接的时间间隔,默认每隔10秒连接一次。
  • 默认值:10

reconnectCount:

  • 类型:数值
  • 描述:(可选项)当连接服务器端失败时,重新连接最大次数,若连接失败达到最大连接次数,即停止连接,默认重连10次后停止连接。
  • 默认值:10

heartbeatTime:

  • 类型:数值
  • 描述:(可选项)心跳检测间隔时间。
  • 默认值:10

param:

  • 类型:JSON
  • 描述:(可选项)给WebSocket服务器端传递的参数,与服务端开发人员协商具体参数。
  • 默认值:无

headers:

  • 类型:JSON
  • 描述:(可选项)给WebSocket服务器端传递的请求头,与服务端开发人员协商具体参数。
  • 默认值:无

示例代码

var socketObj = uni.requireNativePlugin("wangqi-WebSocketConnect_Socket")
var param = {   
                wsUrl: '192.168.0.118:8000/my_SXD_Socket', 
                isWSS: false,
                param: {username: 'tom', password: '123'},
                reconnectTime: 10,
                reconnectCount: 10,
                heartbeatTime: 10
            }
socketObj.startConnect(param)

stopConnect

停止连接服务器端(心跳检测一起停止)。

stopConnect()

示例代码

socketObj.stopConnect()

sendMessage

发送消息给服务端,发送消息失败会重新连接服务端 (如果是主动关闭连接,则不会重新连接) 。

sendMessage({params}, callback(ret))

params

参数具体内容与服务端开发人员协商即可。

callback(ret)

ret:

  • 类型:JSON 对象
  • 描述:status字段值为true时消息发送成功,否则发送失败
  • 内部字段:
{
    status: true   //布尔型;true||false
}

示例代码

var object = {
    to: 'jerry',
    msg: 'message',
    type: 2
};
socketObj.sendMessage(object, (ret) => {
    if(ret.status){
    }
})

getSyncConnectStatus

获取当前连接状态。

getSyncConnectStatus()

返回值

  • 类型:JSON
  • 描述:status字段值为true时已经连接,否则未连接。
  • 内部字段:
{
    status: true   //布尔型;true||false
}

示例代码

var ret = socketObj.getSyncConnectStatus()              
if(ret.status){
}

serverMsg

监听服务端返回的消息,以及连接的状态

回调返回的参数

内部字段

{
    status: 0,
    msg: '',
    data: ''
}

status:

  • 类型:数值
  • 描述:状态
  • 取值范围:
    • 0: 服务器连接已关闭
    • 1: 接收到服务器的消息
    • 2: 服务器关闭连接中
    • 5: 服务器连接失败或主动关闭连接
    • 6: 服务器连接成功
    • 7: 请您检查网络
    • 8: 服务器连接失败,非正常关闭连接
    • 9: 服务器重连接中
    • 10:服务器已经连接
    • 11:停止连接服务器

msg:

  • 类型:字符串
  • 描述:与status属性对应的文字描述

data:

  • 类型:字符串
  • 描述:服务器发送过来的消息,当status属性的值为1的时候,该字段才存在。

示例代码

plus.globalEvent.addEventListener('serverMsg', function(e){
    if(e.status == 6){
    }else if(e.status == 1){
    }
});

隐私、权限声明

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

<uses-permission android:name="android.permission.INTERNET"/> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

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

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

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