socketManager


简介:

socket管理模块可以创建一个TCP/UDPip地址协议连接,通过socket连接发送数据和接受数据,对创建的连接进行管理

方法:

  • createSocket : 创建一个tcp或udp socket连接,连接到指定服务器
  • closeSocket : 关闭socket连接
  • write : 发送数据到服务器

回调方法:

  • stateUpdateCallback : socket状态改变或收到消息时调用

createSocket


创建一个tcp或udp socket连接,连接到指定服务器,参数可设置socket服务器ip地址,端口号,连接超时时间
createSocket(params, callback);
参数:
  • params:( 创建的socket参数设置 )必选 socket设置参数
    • type: ( String ) socket的类型,tcp或者udp
    • udpMode: ( String ) udp通讯的模式,unicast:单播、multicast:组播:broadcast:广播
    • host: ( String ) socket连接的ip地址
    • port: ( Number ) socket连接的端口号
    • localPort: ( Number ) 绑定的端口号,仅用于udp
    • timeOut: ( Number ) socket连接的超时时间,单位为秒
    • bufferSize: ( Number ) 收到数据的最大缓冲大小, 单位为byte, 0为无限制
    • charset: ( String ) 发送和接收数据的编码字符集, 如:utf-8
  • callback:( stateUpdateCallback )必选 状态回调
    • state: ( socket状态常量 ) 状态常量
      • CREATESUCCEED: 值为101,socket创建成功
        • CONNECTSUCCEED: 值为102,socket连接到服务器成功
        • RECEIVEDMSG:值为103,收到消息
        • CREATEFAILED: 值为201,创建失败
        • CONNECTFAILED: 值为202,连接失败
        • DISCONNECTWITHERROR: 值为203,异常断开
        • DISCONNECTWITHERROR: 值为204,正常断开
    • info: ( String ) socket收到的信息
示例
    var parames={type : 'udp',udpMode : 'unicast',host : '192.168.168.225',port : '60010',localPort : '60011',timeOut : '30',bufferSize : '0',charset : 'utf-8'};
var socket = rd.require('socketManager');
socket.createSocket(parames, function(state,info){
    var stateStr = "";
    if(socket.CREATESUCCEED == state){
        stateStr = "创建成功";
    }else if(socket.CONNECTSUCCEED == state){
        stateStr = "连接成功";
    }else if(socket.RECEIVEDMSG == state){
        stateStr = "收到消息";
    }else if(socket.CREATEFAILED == state){
        stateStr = "创建失败";
    }else if(socket.CONNECTFAILED == state){
        stateStr = "连接失败";
    }else if(socket.DISCONNECTWITHERROR == state){
        stateStr = "异常断开";
    }else if(socket.DISCONNECTNORMAL == state){
        stateStr = "正常断开";
    }
    alert('state: '+stateStr+'\ndata: '+(info?info:''));
});
返回值

closeSocket


关闭socket,断开与服务器的连接
rd.require('socketManager').closeSocket();
参数:

返回值:

示例:
var socket = rd.require('socketManager');
socket.closeSocket();

write


向服务器发送消息

参数
  • data:( String ) 必选 要发送的内容
  • tag:( Number ) 可选 消息的标识,仅用于tcp类型,默认为0
返回值:

示例:
rd.require('socketManager').write('this is a socket message', 0);