为帮助用户更好更快的使用插件,论坛维护了一个示例,示例中包含示例代码供您参考。
WebSocket简介
WebSocket用于在Web浏览器和服务器之间进行任意的双向数据传输的一种技术。WebSocket协议基于TCP协议实现,包含初始的握手过程,以及后续的多次数据帧双向传输过程。其目的是在WebSocket应用和WebSocket服务器进行频繁双向通信时,可以使服务器避免打开多个HTTP连接进行工作来节约资源,提高了工作效率和资源利用率。
webSocket 插件概述
本插件封装了的原生WebSocket通信,支持ws、wss协议。
使用此插件之前建议先配置config.xml文件,配置完毕,需通过云端编译生效,配置方法如下:
<feature name="webSocket">
<param name="isGlobal" value="true"/>
</feature>
isGlobal:(必须配置)插件对象是否全局变量控制,当设置true时整个app只生成一个对象,可以跨页面进行发送数据;当设置为fasle时每一个页面初始化一次就是一个对象,页面间的对象不能互相操作。
Android:4.0及以上 iOS:8.0及以上
websocket消息监听,可以监听连接,断开,接收消息等事件。
addEventListener(callback(ret, err))
ret:
{
status: true, //布尔型;true||false
evenType : 'Connected', //字符串: 消息类型事件
//Connected 连接成功
//ReturnData 接收消息
//Closed 连接断开
//reConnect 被动断线重连
data : '' //接收消息内容,仅evenType='ReturnData'有效
}
err:
{
code: 1,
msg : ''
}
var demo = api.require('webSocket');
demo.addEventListener(function(ret, err) {
alert(JSON.stringify(ret) + " " + JSON.stringify(err));
});
iOS系统,Android系统
可提供的1.0.0及更高版本
连接websocket
open({params}, callback(ret, err))
url:
pingInterval:
pingData:
isBtyes:
isAutoConnect:
ret:
{
status: true //布尔型;true||false
}
err:
{
code: 1 ,
msg : ''
}
var demo = api.require('webSocket');
demo.open({
url : 'ws://192.168.1.102:8887/socket'
}, function(ret, err) {
alert(JSON.stringify(ret) + " " + JSON.stringify(err));
});
iOS系统,Android系统
可提供的1.0.0及更高版本
发送内容
send({params}, callback(ret, err))
data:
isBtyes:
ret:
{
status: true //布尔型;true||false
}
err:
{
code: 1,
msg : ''
}
var demo = api.require('webSocket');
demo.send({
data : '我是消息内容'
}, function(ret, err) {
alert(JSON.stringify(ret) + " " + JSON.stringify(err));
});
iOS系统,Android系统
可提供的1.0.0及更高版本
关闭连接
close(callback(ret, err))
ret:
{
status: true //布尔型;true||false
}
err:
{
code: 1,
msg : ''
}
var demo = api.require('webSocket');
demo.close(unction(ret, err) {
alert(JSON.stringify(ret) + " " + JSON.stringify(err));
});
iOS系统,Android系统
可提供的1.0.0及更高版本
获取连接状态
getConnectState()
##ret:
{
status: true, //布尔型;true
State :'NOT_YET_CONNECTED'//连接状态:
//NOT_YET_CONNECTED 还没有连接
//OPEN 打开状态
//CLOSING 正在关闭
//CLOSED 已关闭
//CONNECTING 正在连接(仅iOS有值)
}
var demo = api.require('webSocket');
var ret = demo.getConnectState();
api.alert({msg: JSON.stringify(ret)});
iOS系统,Android系统
可提供的1.0.0及更高版本