123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129 |
- 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
- }
- };
|