|
@@ -1,11 +1,13 @@
|
|
|
-var WebsocketConnect = function(addr,auto_connect,auto_join,callbacks,room_msg,msg_callback){
|
|
|
+var WebsocketConnect = function(wshost,fAutoConnect,fAutojoin,callbacks,room_msg,msg_handler)
|
|
|
+{
|
|
|
|
|
|
var socket= null;
|
|
|
- var fauto_connect = auto_connect;
|
|
|
- var fauto_join = auto_join;
|
|
|
+ var fauto_connect = fAutoConnect;
|
|
|
+ var fauto_join = fAutojoin;
|
|
|
var is_connect = false;
|
|
|
+
|
|
|
var webSocket_callbacks = {
|
|
|
- onopen: callbacks.onOpen,
|
|
|
+ onopen: callbacks.onOpen,
|
|
|
onerror: callbacks.onError,
|
|
|
onclose: callbacks.onClose
|
|
|
};
|
|
@@ -15,7 +17,8 @@ var WebsocketConnect = function(addr,auto_connect,auto_join,callbacks,room_msg,m
|
|
|
roomkey : room_msg.roomkey
|
|
|
};
|
|
|
|
|
|
- var Json_parse = function(json){
|
|
|
+ var Json_parse = function(json)
|
|
|
+ {
|
|
|
var datas = json;
|
|
|
var get_me = function(){
|
|
|
var me_id = datas.content.me;
|
|
@@ -26,6 +29,7 @@ var WebsocketConnect = function(addr,auto_connect,auto_join,callbacks,room_msg,m
|
|
|
}
|
|
|
}
|
|
|
};
|
|
|
+
|
|
|
var get_all = function(){
|
|
|
return datas.content.users;
|
|
|
};
|
|
@@ -37,6 +41,7 @@ var WebsocketConnect = function(addr,auto_connect,auto_join,callbacks,room_msg,m
|
|
|
var get_from = function() {
|
|
|
return datas.content.from;
|
|
|
};
|
|
|
+
|
|
|
return {
|
|
|
get_me:get_me,
|
|
|
get_all:get_all,
|
|
@@ -57,6 +62,19 @@ var WebsocketConnect = function(addr,auto_connect,auto_join,callbacks,room_msg,m
|
|
|
|
|
|
socket.send(JSON.stringify(jsonobject));
|
|
|
};
|
|
|
+
|
|
|
+ var shake_bonus = function(val){
|
|
|
+ var jsonobject = {
|
|
|
+ op:"shake",
|
|
|
+ room:room_msgs.room,
|
|
|
+ room_key:room_msgs.roomkey,
|
|
|
+ type:"shake_bonus",
|
|
|
+ content:val
|
|
|
+ };
|
|
|
+
|
|
|
+ socket.send(JSON.stringify(jsonobject));
|
|
|
+ };
|
|
|
+
|
|
|
var login = function login()
|
|
|
{
|
|
|
var jsonobject = {
|
|
@@ -76,14 +94,15 @@ var WebsocketConnect = function(addr,auto_connect,auto_join,callbacks,room_msg,m
|
|
|
return;
|
|
|
}
|
|
|
if(window.WebSocket) {
|
|
|
- socket = new WebSocket(addr);
|
|
|
+ socket = new WebSocket(wshost);
|
|
|
}
|
|
|
else {
|
|
|
console.log('您的设备不支持WebSocket');
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
- socket.onopen = function(){
|
|
|
+ socket.onopen = function()
|
|
|
+ {
|
|
|
webSocket_callbacks.onopen();
|
|
|
if(fauto_join && is_connect) {
|
|
|
login();
|
|
@@ -92,24 +111,29 @@ var WebsocketConnect = function(addr,auto_connect,auto_join,callbacks,room_msg,m
|
|
|
socket.onerror = function(){
|
|
|
webSocket_callbacks.onerror();
|
|
|
};
|
|
|
- socket.onmessage = function(msg){
|
|
|
+
|
|
|
+ socket.onmessage = function(msg)
|
|
|
+ {
|
|
|
var datasJsonParse = JSON.parse(msg.data);
|
|
|
- var msg_type = datasJsonParse.op;
|
|
|
- if(msg_type == 'ret_join') {
|
|
|
- if( msg_callback.room_info) {
|
|
|
- msg_callback.room_info(datasJsonParse);
|
|
|
+ var op = datasJsonParse.op;
|
|
|
+ if(op == 'ret_join') {
|
|
|
+ if( msg_handler.room_info) {
|
|
|
+ msg_handler.room_info(datasJsonParse);
|
|
|
}
|
|
|
}
|
|
|
- if(msg_type == 'join') {
|
|
|
- if( msg_callback.join) {
|
|
|
- msg_callback.join(datasJsonParse)
|
|
|
+ else if(op == 'join') {
|
|
|
+ if( msg_handler.join) {
|
|
|
+ msg_handler.join(datasJsonParse)
|
|
|
}
|
|
|
}
|
|
|
- if(msg_type == 'message') {
|
|
|
- if(msg_callback.message) {
|
|
|
- msg_callback.message(datasJsonParse);
|
|
|
+ else if(op == 'message') {
|
|
|
+ if(msg_handler.message) {
|
|
|
+ msg_handler.message(datasJsonParse);
|
|
|
}
|
|
|
}
|
|
|
+ else {
|
|
|
+
|
|
|
+ }
|
|
|
};
|
|
|
socket.onclose = function(){
|
|
|
webSocket_callbacks.onclose();
|
|
@@ -119,9 +143,11 @@ var WebsocketConnect = function(addr,auto_connect,auto_join,callbacks,room_msg,m
|
|
|
if(fauto_connect) {
|
|
|
connect();
|
|
|
}
|
|
|
+
|
|
|
return {
|
|
|
connect:connect,
|
|
|
send:Send,
|
|
|
+ shake_bonus:shake_bonus,
|
|
|
login:login,
|
|
|
close:Close,
|
|
|
Json_parse:Json_parse
|