socketManager

来自于:官方立即使用

概述

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 对象

内部字段:

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

示例代码

var socketManager = api.require('socketManager');
socketManager.createSocket({
    host: '192.168.1.100',
    port: 8282
}, function(ret, err) {
    if (ret) {
        alert(JSON.stringify(ret));
    } else {
        alert(JSON.stringify(err));
    }
});

补充说明

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

closeSocket

关闭 socket 连接

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

params

sid:

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

callback(ret, err)

ret:

  • 类型:JSON 对象

内部字段:

{
    status:true           //操作成功状态值
}

err:

  • 类型:JSON 对象

内部字段:

{
    msg:''    //错误描述
}

示例代码

var socketManager = api.require('socketManager');
socketManager.closeSocket({
    sid: '1'
}, function(ret, err) {
    if (ret.status) {
        alert(JSON.stringify(ret));
    } else {
        alert(JSON.stringify(err));
    }
});

补充说明

可用性

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 对象

内部字段:

{
    status:true           //操作成功状态值
}

err:

  • 类型:JSON 对象

内部字段:

{
    msg:''    //错误描述
}

示例代码

var socketManager = api.require('socketManager');
socketManager.write({
    sid: '1',
    data: '你好'
}, function(ret, err) {
    if (ret.status) {
        alert(JSON.stringify(ret));
    } else {
        alert(JSON.stringify(err));
    }
});

补充说明

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

socket状态码

socket状态码。数字类型

取值范围:

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