文章目录
插件js文件封装
文件名称:
socketTool.js
//# sourceURL=socketTool.js
//socket工具类,封装为简单通用工具
jQuery.extend
({
isSocket : function isSocket()
{
return !((WebSocket) == "undefined");
},
/**
* socket连接,功能初始化
*/
socketInitial : function socketInitial(params)
{
params=params?params:new Object();
params.url=params.url?params.url:"";
if(params.url=="")
{
alter("socket连接失败!服务地址缺失。");
}
if (!$.isSocket())
{
return false;
}
//指定服务器url
var socket = new WebSocket(params.url);//webSocket对象
var headFlag=true;//连接状态
var openConnection=function()
{
//打开连接
socket.onopen = function ()
{
if(headFlag)
{
unConnectTime=new Date().getTime();//断开连接时的时间
params.onopen();
}
};
};
openConnection();
//收到消息事件
socket.onmessage = function (msg)
{
params.onmessage(msg);
};
//连接关闭事件
socket.onclose = function ()
{
params.onclose();
};
//发生了错误事件
socket.onerror = function ()
{
socket.close();
};
//窗口关闭时,关闭连接
window.unload = function ()
{
socket.close();
};
return socket;
}
});
代码使用案例如下
var socket=$.socketInitial({
//socket地址
"url" : "http://localhost:1001/ws",
//打开连接
onopen : function()
{
//登录
var user=new Object();
user.jobnumber=jobnumber;//公共常量,登录用户的工号
user.registerType=1;//注册方式:1.登录
//发送消息
socket.send(JSON.stringify(user));
},
//收到消息
onmessage : function(msg)
{
//转为JSON格式
var dataJson=JSON.parse(msg.data);
//后台主动推送消息
if(dataJson.msgtype==1)
{
var data=JSON.parse(dataJson.msg);
var button=$(".custom-upload-to-els-7004");
var processNode=$(".progress-line-status-div");
//初始化进度条【自定义插件封装】
$.initialProcess(data,socket,processNode);
}
},
//关闭
onclose : function()
{
}
});