Pārlūkot izejas kodu

add websocket me

huanggang 7 gadi atpakaļ
vecāks
revīzija
d62d4d66dd

+ 6 - 1
data/resource/mobile/comm/websocket.js

@@ -5,6 +5,7 @@ var WebsocketConnect = function(wshost,fAutoConnect,fAutojoin,callbacks,room_msg
     var fauto_connect = fAutoConnect;
     var fauto_join = fAutojoin;
     var is_connect = false;
+    var meId = 0;
 
     var webSocket_callbacks = {
         onopen:  callbacks.onOpen,
@@ -150,6 +151,10 @@ var WebsocketConnect = function(wshost,fAutoConnect,fAutojoin,callbacks,room_msg
         shake_bonus:shake_bonus,
         login:login,
         close:Close,
-        Json_parse:Json_parse
+        Json_parse:Json_parse,
+        getMeId:meId,
+        setMeId:function(id){
+            meId = id;
+        }
     }
 };

+ 25 - 15
mobile/templates/default/game/shake_bonus.php

@@ -54,6 +54,7 @@
         onClose:sClose
     };
     var msg_type_callback = {
+        room_info:ret_join,
         message:message
     };
     var websocket = new WebsocketConnect(addr,true,true,callbacks,room_msgs,msg_type_callback);
@@ -67,10 +68,9 @@
 
     var Barrage = function()
     {
-        this.dataList = [];
-        this.dataNum = 0;
+        this.sendData = null;
         this.barrage_html = '';
-        this.dataParem = function(data)
+        this.dataParse = function(data)
         {
             return {
                 posY :parseInt(Math.random() * 80 + 10),
@@ -80,22 +80,21 @@
             }
         };
         this.add = function(send_data){
-            this.dataList.push(this.dataParem(send_data));
+            this.sendData = this.dataParse(send_data);
             return this;
         };
         this.send = function()
         {
-            if(this.dataList.length > 0)
+            if(this.sendData)
             {
-                if(this.dataList[0].msg > 0) {
-                    this.barrage_html = '<div class="barrage" style="top:'+this.dataList[0].posY+'%"><img src="'+this.dataList[0].avatar+'">'+this.dataList[0].nickname+'摇到了<span class="price">'+this.dataList[0].msg+'元</span>红包</div>';
+                if(this.sendData.msg > 0) {
+                    this.barrage_html = '<div class="barrage" style="top:'+this.sendData.posY+'%"><img src="'+this.sendData.avatar+'">'+this.sendData.nickname+'摇到了<span class="price">'+this.sendData.msg+'元</span>红包</div>';
                 }
                 else {
-                    this.barrage_html = '<div class="barrage" style="top:'+this.dataList[0].posY+'%"><img src="'+this.dataList[0].avatar+'">'+this.dataList[0].nickname+'摇走了<span class="price">'+this.dataList[0].msg+'元</span>红包</div>';
+                    this.barrage_html = '<div class="barrage" style="top:'+this.sendData.posY+'%"><img src="'+this.sendData.avatar+'">'+this.sendData.nickname+'摇飞了<span class="price" style="color: green;">'+Math.abs(this.sendData.msg)+'元</span>红包</div>';
                 }
                 $('body').append(this.barrage_html);
-                this.dataNum++;
-                this.dataList = [];
+                this.sendData = null;
                 this.barrage_html = '';
                 this.clear();
                 return this;
@@ -106,10 +105,13 @@
         };
         this.clear = function()
         {
-            var _self = this;
-            setTimeout(function() {
-                $('.barrage').eq(_self.dataNum).remove();
-            },12000);
+            setTimeout(function(){
+                for(var i=0;i<$('.barrage').length;i++) {
+                    if($('.barrage').eq(i).offset().left < -600 ) {
+                        $('.barrage').eq(i).remove();
+                    }
+                }
+            },10000);
             return this;
         };
     };
@@ -120,10 +122,13 @@
     {
         var jsonDatas = new websocket.Json_parse(datas);
         var msg_type = datas.content.type;
+        var msg_from_userId = datas.content.from.userid;
         try
         {
             if(msg_type == 'shake_bonus') {
-                barrage.add(jsonDatas).send();
+                if(msg_from_userId !== websocket.getMeId) {
+                    barrage.add(jsonDatas).send();
+                }
             }
         }
         catch (e) {
@@ -131,6 +136,11 @@
         }
     }
 
+    function ret_join(datas){
+        var jsonDatas = new websocket.Json_parse(datas);
+        websocket.setMeId(jsonDatas.content.me);
+    }
+
     var shake_start   = document.getElementById('shake_start');
     var shake_null    = document.getElementById('shake_null');
     var shake_success = document.getElementById('shake_success');