socketManager

来自于:官方立即使用

createSocket closeSocket write

概述

socketManager 模块封装了 socket 的创建、关闭、发送数据等操作,使用此模块能实现即时通讯数据收发功能。

createSocket

创建 socket 并进行连接,连接状态以及接收到数据都通过回调返回

createSocket({params}, callback(ret, err))

params

type:

  • 类型:字符串
  • 默认值:tcp
  • 描述:socket 类型,tcp 或 udp

udpMode:

  • 类型:字符串
  • 默认值:unicast
  • 描述:udp 通讯模式,取值范围为(unicast-单播、multicast-组播、broadcast-广播)

host:

  • 类型:字符串
  • 默认值:无
  • 描述:主机地址,IP 或者域名,不能为空

port:

  • 类型:数字
  • 默认值:80
  • 描述:主机端口

localPort:

  • 类型:数字
  • 默认值:8282
  • 描述:本机绑定的端口,用于udp

timeout:

  • 类型:数字
  • 默认值:5
  • 描述:连接超时时间,单位秒

bufferSize:

  • 类型:数字
  • 默认值:16
  • 描述:缓冲大小,客户端根据自己传输的数据可能的最大值进行设置,单位kb

charset:

  • 类型:字符串
  • 默认值:utf-8
  • 描述:字符集,发送和接收数据时使用此字符集进行编码

returnBase64:

  • 类型:布尔
  • 默认值:false
  • 描述:收到数据时是否返回base64编码后的数据

callback(ret, err)

ret:

  • 类型:JSON 对象

内部字段:

  1. {
  2. sid: //socket的唯一标识,字符串类型
  3. state: //socket状态码,见常量里面的socket状态码,数字类型
  4. data: //state为接收数据时的数据,字符串类型
  5. host //udp收到数据时发送方地址
  6. port //udp收到数据时发送方端口
  7. }

示例代码

  1. var socketManager = api.require('socketManager');
  2. socketManager.createSocket({
  3. host: '192.168.1.100',
  4. port: 8282
  5. }, function(ret, err) {
  6. if (ret) {
  7. alert(JSON.stringify(ret));
  8. } else {
  9. alert(JSON.stringify(err));
  10. }
  11. });

补充说明

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

closeSocket

关闭 socket 连接

closeSocket({params}, callback(ret, err))

params

sid:

  • 类型:字符串
  • 默认值:无
  • 描述:通过 createSocket 方法获取得到的 socket 的唯一标识,不能为空

callback(ret, err)

ret:

  • 类型:JSON 对象

内部字段:

  1. {
  2. status:true //操作成功状态值
  3. }

err:

  • 类型:JSON 对象

内部字段:

  1. {
  2. msg:'' //错误描述
  3. }

示例代码

  1. var socketManager = api.require('socketManager');
  2. socketManager.closeSocket({
  3. sid: '1'
  4. }, function(ret, err) {
  5. if (ret.status) {
  6. alert(JSON.stringify(ret));
  7. } else {
  8. alert(JSON.stringify(err));
  9. }
  10. });

补充说明

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

write

往某个 socket 写入数据

write({params}, callback(ret, err))

params

sid:

  • 类型:字符串
  • 默认值:无
  • 描述:通过 createSocket 方法获取得到的 socket 的唯一标识,不能为空

data:

  • 类型:字符串
  • 默认值:无
  • 描述:发送的数据,不能为空

base64:

  • 类型:布尔
  • 默认值:false
  • 描述:标识 data 是否是经过 JS 层 base64 处理后的数据,如果是,模块中会将其 decode 后再发送

host:

  • 类型:字符串
  • 默认值:createSocket 方法里面传的 host
  • 描述:主机地址,IP 或者域名,udp 时有效

port:

  • 类型:数字
  • 默认值:createSocket 方法里面传的 port
  • 描述:主机端口,udp 时有效

callback(ret, err)

ret:

  • 类型:JSON 对象

内部字段:

  1. {
  2. status:true //操作成功状态值
  3. }

err:

  • 类型:JSON 对象

内部字段:

  1. {
  2. msg:'' //错误描述
  3. }

示例代码

  1. var socketManager = api.require('socketManager');
  2. socketManager.write({
  3. sid: '1',
  4. data: '你好'
  5. }, function(ret, err) {
  6. if (ret.status) {
  7. alert(JSON.stringify(ret));
  8. } else {
  9. alert(JSON.stringify(err));
  10. }
  11. });

补充说明

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

socket状态码

socket状态码。数字类型

取值范围:

  • 101 //创建成功
  • 102 //连接成功
  • 103 //收到数据
  • 201 //创建失败
  • 202 //连接失败
  • 203 //异常断开
  • 204 //正常断开
  • 205 //发生未知错误断开