myWebSocket

来自于:开发者立即使用

open bindEvent send close readyState

论坛示例

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

概述

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

widget 测试包

模块概述

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

模块接口

设置全局单例模式

  1. <feature name="myWebSocket">
  2. <param name="isGlobal" value="true" />
  3. </feature>

open

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

open(params,callback(ret, err))

params

url:

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

pingInterval:

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

pingData:

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

callback(ret, err)

ret:

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

err:

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

示例代码

  1. var myWebSocket = api.require('myWebSocket');
  2. myWebSocket.open({
  3. url:'ws://host:port',
  4. pingInterval:30,
  5. pingData:'ping',
  6. autoReconnect:true //开启自动重连
  7. },function(ret, err) {
  8. if (ret) {
  9. alert("打开成功");
  10. } else {
  11. alert('打开失败');
  12. }
  13. });

bindEvent

事件监听

bindEvent(callback(ret,err))

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

callback(ret,err)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. type:"" // opened 打开成功,连接上了服务器
  3. // closed 连接已关闭
  4. // receive 接收到了消息
  5. // error 发生错误时
  6. //
  7. data: "" //字符串;
  8. }

示例代码

  1. var myWebSocket = api.require('myWebSocket');
  2. myWebSocket.bindEvent( function(ret,err) {
  3. var type = ret.type;
  4. var str =ret.data;
  5. switch (type){
  6. case 'opened':
  7. //登录...
  8. console.log("连接成功");
  9. break;
  10. case 'receive':
  11. var message = JSON.parse(str);
  12. console.log("接收消息:",message);
  13. break;
  14. case 'error':
  15. //do something ...
  16. console.log("连接发生错误");
  17. //打印关闭的log
  18. console.log(str)
  19. break;
  20. case 'closed':
  21. //do something ...
  22. console.log("连接已断开");
  23. //打印关闭的log
  24. console.log(str)
  25. break;
  26. }
  27. });

send

发送消息

send({params})

params

msg:

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

返回值

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

示例代码

  1. var myWebSocket = api.require('myWebSocket');
  2. var result = myWebSocket.send({msg:"hello"});
  3. // result 值为 success 或 fail

close

关闭连接

close(callback(ret, err))

callback(ret, err)

ret:

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

err:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. status: false
  3. data:""
  4. }

readyState

获取状态值

readyState()

返回值

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

可用性

iOS系统,Android系统