myWebSocket

来自于:开发者立即使用

论坛示例

为帮助用户更好更快的使用模块,论坛维护了一个示例,示例中包含示例代码供您参考。

概述

WebSocket 本模块封装了 安卓与ios websocket原生SDK 基础功能

widget 测试包

模块概述

  • 发送消息
  • 支持自定义心跳数据
  • 新增断网重连、后台回前台重连 机制

模块接口

设置全局单例模式

 <feature name="myWebSocket">
     <param name="isGlobal" value="true" />
 </feature>

open

打开连接
是否连接成功,请以事件监听(bindEvent) 状态为准

open(params,callback(ret, err))

params

url:

  • 类型:字符串
  • 描述:服务端地址

pingInterval:

  • 类型:整型
  • 描述:(可选项)心跳间隔,单位秒,设置大于0时起效果
  • 默认值:0
  • 取值范围:
    • [1-120]

pingData:

  • 类型:字符串
  • 描述:(可选项)心跳数据,配合pingInterval 使用
  • 默认值:ping

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status: true      //打开成功
    data: "打开成功" // 
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
    status: false     //打开失败;
    data:"提示信息"      
}

示例代码

var myWebSocket = api.require('myWebSocket');
myWebSocket.open({
    url:'ws://host:port',
    pingInterval:30,
    pingData:'ping',
    autoReconnect:true //开启自动重连
},function(ret, err) {
    if (ret) {
        alert("打开成功");
    } else {
        alert('打开失败');
    }
});

bindEvent

事件监听

bindEvent(callback(ret,err))

当设置全局模式时,其他页面使用 bindEvent 可以多次绑定,不会覆盖; 当前页面bindEvent 只会生效最后一次

callback(ret,err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{

    type:""      // opened 打开成功,连接上了服务器
                 // closed 连接已关闭
                 // receive 接收到了消息
                 // error 发生错误时 
                 //
    data: ""    //字符串; 
}

示例代码

var myWebSocket = api.require('myWebSocket');
myWebSocket.bindEvent( function(ret,err) {
       var type = ret.type;
       var str =ret.data;

       switch (type){
           case 'opened':
                //登录...
                console.log("连接成功");
                break;
           case 'receive':
               var message = JSON.parse(str);
               console.log("接收消息:",message);
                break;
             case 'error':
               //do something ...
                console.log("连接发生错误");
                //打印关闭的log
                console.log(str)
                break;
           case 'closed':
               //do something ...
                console.log("连接已断开");
                //打印关闭的log
                console.log(str)
                break;
       }  
});

send

发送消息

send({params})

params

msg:

  • 类型:字符串
  • 描述:发送内容

返回值

  • success 发送成功
  • fail 发送失败

示例代码

var myWebSocket = api.require('myWebSocket');
var result = myWebSocket.send({msg:"hello"});

// result 值为 success 或 fail

close

关闭连接

close(callback(ret, err))

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status: true   //布尔型;true||false
    data:"" 
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
    status: false     
    data:""
}

readyState

获取状态值

readyState()

返回值

  • 类型:整型
  • 1 已连接 2 关闭中 3 已关闭 0 未连接
var readyState = myWebSocket.readyState()
switch (readyState) {
    case 1:
        break;
        //...
}

可用性

iOS系统,Android系统