108 lines
2.6 KiB
JavaScript
108 lines
2.6 KiB
JavaScript
|
|
var ws = new WebSocket("ws://localhost:9875/ws");
|
|||
|
|
ws.onopen = function()
|
|||
|
|
{
|
|||
|
|
console.log("连接成功");
|
|||
|
|
};
|
|||
|
|
ws.onmessage = function(evt)
|
|||
|
|
{
|
|||
|
|
var data = JSON.parse(evt.data);
|
|||
|
|
for(var i in protocol){
|
|||
|
|
if(protocol[i].code == data.code){
|
|||
|
|
protocol[i].handler(data);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
};
|
|||
|
|
ws.onclose = function(evt)
|
|||
|
|
{
|
|||
|
|
console.log("WebSocketClosed!");
|
|||
|
|
};
|
|||
|
|
ws.onerror = function(evt)
|
|||
|
|
{
|
|||
|
|
console.log("WebSocketError!");
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
/** 发送消息 */
|
|||
|
|
function send(code,params){
|
|||
|
|
var obj = new Object();
|
|||
|
|
obj.code = code;
|
|||
|
|
obj.params = params;
|
|||
|
|
var json = JSON.stringify(obj);
|
|||
|
|
ws.send(json);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/** 协议封装 */
|
|||
|
|
function protocolHandler(code,handler){
|
|||
|
|
var obj = {
|
|||
|
|
code: code,
|
|||
|
|
handler: handler
|
|||
|
|
}
|
|||
|
|
return obj;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
var joinRoom = function(data){
|
|||
|
|
$("#first").hide();
|
|||
|
|
$("#second").hide();
|
|||
|
|
$("#room").show();
|
|||
|
|
$("#roomCode").text(data.params.code);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
var protocol = new Object();
|
|||
|
|
//登录返回
|
|||
|
|
protocol.login = protocolHandler(100,function(data){
|
|||
|
|
$("#first").hide();
|
|||
|
|
$("#second").show();
|
|||
|
|
$("#room").hide();
|
|||
|
|
$("#username").text(data.params.name);
|
|||
|
|
$("#user").text(data.params.name);
|
|||
|
|
})
|
|||
|
|
//发送消息到所有
|
|||
|
|
protocol.msgAll = protocolHandler(102,function(data){
|
|||
|
|
$("#allTable").append("<tr class='user'>" +
|
|||
|
|
"<td style='text-align: right'>" + data.params.username + ":</td>" +
|
|||
|
|
"<td style='text-align: left'>" + data.params.msg + "</td></tr>");
|
|||
|
|
})
|
|||
|
|
//私聊
|
|||
|
|
protocol.msgOne = protocolHandler(103,function(data){
|
|||
|
|
$("#oneTable").append("<tr class='user'>" +
|
|||
|
|
"<td style='text-align: right'>" + data.params.username + ":</td>" +
|
|||
|
|
"<td style='text-align: left'>" + data.params.msg + "</td></tr>");
|
|||
|
|
})
|
|||
|
|
//加入房间
|
|||
|
|
protocol.joinRoomById = protocolHandler(104,joinRoom);
|
|||
|
|
protocol.joinRoomRandom = protocolHandler(105,joinRoom);
|
|||
|
|
protocol.createRoom = protocolHandler(106,joinRoom);
|
|||
|
|
//离开房间
|
|||
|
|
protocol.leaveRoom = protocolHandler(107,function(data){
|
|||
|
|
$("#first").hide();
|
|||
|
|
$("#second").show();
|
|||
|
|
$("#room").hide();
|
|||
|
|
$("#allTable").empty();
|
|||
|
|
})
|
|||
|
|
//用户加入
|
|||
|
|
protocol.userJoinRoom = protocolHandler(-101,function(data){
|
|||
|
|
$("#allTable").append("<tr class='system-msg'>" +
|
|||
|
|
"<td style='text-align: right'>系统消息:</td>" +
|
|||
|
|
"<td style='text-align: left'><" + data.params.username + ">加入房间</td></tr>");
|
|||
|
|
})
|
|||
|
|
//用户离开
|
|||
|
|
protocol.userLeaveRoom = protocolHandler(-102,function(data){
|
|||
|
|
$("#allTable").append("<tr class='system-msg'>" +
|
|||
|
|
"<td style='text-align: right'>系统消息:</td>" +
|
|||
|
|
"<td style='text-align: left'><" + data.params.username + ">离开房间</td></tr>");
|
|||
|
|
})
|
|||
|
|
//服务器主动推送
|
|||
|
|
protocol.serverPush = protocolHandler(-200,function(data){
|
|||
|
|
|
|||
|
|
})
|
|||
|
|
//错误信息
|
|||
|
|
protocol.errorMsg = protocolHandler(-400,function(data){
|
|||
|
|
layer.msg(data.msg);
|
|||
|
|
})
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|