|
@@ -0,0 +1,129 @@
|
|
|
+var WebsocketConnect = function(addr,auto_connect,auto_join,callbacks,room_msg,msg_callback){
|
|
|
+
|
|
|
+ var socket= null;
|
|
|
+ var fauto_connect = auto_connect;
|
|
|
+ var fauto_join = auto_join;
|
|
|
+ var is_connect = false;
|
|
|
+ var webSocket_callbacks = {
|
|
|
+ onopen: callbacks.onOpen,
|
|
|
+ onerror: callbacks.onError,
|
|
|
+ onclose: callbacks.onClose
|
|
|
+ };
|
|
|
+
|
|
|
+ var room_msgs = {
|
|
|
+ room : room_msg.room,
|
|
|
+ roomkey : room_msg.roomkey
|
|
|
+ };
|
|
|
+
|
|
|
+ var Json_parse = function(json){
|
|
|
+ var datas = json;
|
|
|
+ var get_me = function(){
|
|
|
+ var me_id = datas.content.me;
|
|
|
+ var users = datas.content.users;
|
|
|
+ for(var i=0;i<users.length;i++) {
|
|
|
+ if(users[i].userid == me_id) {
|
|
|
+ return users[i];
|
|
|
+ }
|
|
|
+ }
|
|
|
+ };
|
|
|
+ var get_all = function(){
|
|
|
+ return datas.content.users;
|
|
|
+ };
|
|
|
+
|
|
|
+ var get_msg = function(){
|
|
|
+ return datas.content.content;
|
|
|
+ };
|
|
|
+
|
|
|
+ var get_from = function() {
|
|
|
+ return datas.content.from;
|
|
|
+ };
|
|
|
+ return {
|
|
|
+ get_me:get_me,
|
|
|
+ get_all:get_all,
|
|
|
+ getDatas:datas,
|
|
|
+ get_msg:get_msg,
|
|
|
+ get_from:get_from
|
|
|
+ }
|
|
|
+ };
|
|
|
+
|
|
|
+ var Send = function(val){
|
|
|
+ var jsonobject = {
|
|
|
+ op:"message",
|
|
|
+ room:room_msgs.room,
|
|
|
+ room_key:room_msgs.roomkey,
|
|
|
+ type:"text",
|
|
|
+ content:val
|
|
|
+ };
|
|
|
+
|
|
|
+ socket.send(JSON.stringify(jsonobject));
|
|
|
+ };
|
|
|
+ var login = function login()
|
|
|
+ {
|
|
|
+ var jsonobject = {
|
|
|
+ op:"join",
|
|
|
+ room:room_msgs.room,
|
|
|
+ room_key:room_msgs.roomkey,
|
|
|
+ code:'bargain'
|
|
|
+ };
|
|
|
+ socket.send(JSON.stringify(jsonobject));
|
|
|
+ };
|
|
|
+ var Close = function(){
|
|
|
+ socket.close();
|
|
|
+ };
|
|
|
+
|
|
|
+ var connect = function(){
|
|
|
+ if(socket) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ if(window.WebSocket) {
|
|
|
+ socket = new WebSocket(addr);
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ console.log('您的设备不支持WebSocket');
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ socket.onopen = function(){
|
|
|
+ webSocket_callbacks.onopen();
|
|
|
+ if(fauto_join && is_connect) {
|
|
|
+ login();
|
|
|
+ }
|
|
|
+ };
|
|
|
+ socket.onerror = function(){
|
|
|
+ webSocket_callbacks.onerror();
|
|
|
+ };
|
|
|
+ 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);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(msg_type == 'join') {
|
|
|
+ if( msg_callback.join) {
|
|
|
+ msg_callback.join(datasJsonParse)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(msg_type == 'message') {
|
|
|
+ if(msg_callback.message) {
|
|
|
+ msg_callback.message(datasJsonParse);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ };
|
|
|
+ socket.onclose = function(){
|
|
|
+ webSocket_callbacks.onclose();
|
|
|
+ };
|
|
|
+ is_connect = true;
|
|
|
+ };
|
|
|
+ if(fauto_connect) {
|
|
|
+ connect();
|
|
|
+ }
|
|
|
+ return {
|
|
|
+ connect:connect,
|
|
|
+ send:Send,
|
|
|
+ login:login,
|
|
|
+ close:Close,
|
|
|
+ Json_parse:Json_parse
|
|
|
+ }
|
|
|
+};
|