Explorar el Código

Merge branch 'beta' of https://git.cocorobo.cn/CocoRoboLabs/CocoRoboDesktop into beta

lsc hace 1 año
padre
commit
bc3691d479
Se han modificado 1 ficheros con 36 adiciones y 18 borrados
  1. 36 18
      node/message.js

+ 36 - 18
node/message.js

@@ -269,7 +269,7 @@ us.server = us.http.createServer(function (requset, response) {
                 case 'addUser':
                     us.addUser(response, _param[0], _param[1], _param[2], _param[3], _param[4]);
                     break;
-                //其余执行                 
+                //其余执行
                 default:
                     response.end(0);
             }
@@ -601,8 +601,8 @@ us.send = function (response, messageinfo) {
                 break;
             //未来课堂交互                                                                                      
             case "us.cscl":
-                console.log("================aaaaa===================");
-                console.log(_messageobj[i]);
+                // console.log("================aaaaa===================");
+                // console.log(_messageobj[i]);
                 _messagearr = _messageobj[i]; //获取word消息
                 //得到word所有的用户
                 for (j = 0; j < _messagearr.length; j++) {
@@ -616,12 +616,12 @@ us.send = function (response, messageinfo) {
                         _messagelist[_messagearr[j].receiveId] = [_message];
                     }
                     us.cscl[_messagearr[j].receiveId] && us.cscl[_messagearr[j].receiveId].history.push(_message);
-                    us.updatecscl(_message.messageInfo, _messagearr[j].receiveId);
+                    us.updatecscl(_message.messageInfo, _messagearr[j].receiveId, _messagearr[j].type);
                 }
                 // console.log(_messagelist)
                 // console.log(_messagearr)
                 //调用群发函数
-                _messagearr[0] && us.broadcast(_messagelist, _messagearr[0].messageInfo.pageId, 'cscl');
+                _messagearr[0] && us.broadcast(_messagelist, _messagearr[0].pageId, 'cscl');
                 break;
             //同步课堂                                                                                      
             case "us.realTimeClass":
@@ -739,45 +739,56 @@ us.updatemindNetwork = function (messageInfo) {
 * 更新后台未来课堂内容
 * @param {object} message 消息信息
 */
-us.updatecscl = function (messageInfo, classId) {
+us.updatecscl = function (messageInfo, classId, ty) {
     messageInfo = messageInfo;
     console.log("------------s------------");
-    console.log(us.cscl[classId])
+    //console.log(us.cscl[classId]);
+    //console.log(ty);
     if (us.cscl[classId]) {
         var i, j, _is;
         var _obj = us.cscl[classId].content;
         _obj.backgroundUrl = messageInfo.backgroundUrl;
         _obj.edges = _obj.edges || [];
         _obj.nodes = _obj.nodes || [];
+
         for (j = 0; j < messageInfo.edges.length; j++) {
             _is = true;
             for (i = 0; i < _obj.edges.length; i++) {
                 if (_obj.edges[i].id == messageInfo.edges[j].id) {
-                    _obj.edges[i] = messageInfo.edges[j];
+                    if (ty == "update") {
+                        _obj.edges[i] = messageInfo.edges[j];
+                    }
+                    else {
+                        _obj.edges.splice(i, 1);
+                    }
                     _is = false;
                     break;
                 }
             }
-            if (_is) {
+            if (_is && ty == "update") {
                 _obj.edges.push(messageInfo.edges[j])
             }
         }
-        console.log("------------a------------");
-        console.log(messageInfo.nodes)
-        console.log(_obj.nodes)
+
         for (j = 0; j < messageInfo.nodes.length; j++) {
             _is = true;
             for (i = 0; i < _obj.nodes.length; i++) {
                 if (_obj.nodes[i].id == messageInfo.nodes[j].id) {
-                    _obj.nodes[i] = messageInfo.nodes[j];
+                    if (ty == "update") {
+                        _obj.nodes[i] = messageInfo.nodes[j];
+                    }
+                    else {
+                        _obj.nodes.splice(i, 1);
+                    }
                     _is = false;
                     break;
                 }
             }
-            if (_is) {
+            if (_is && ty == "update") {
                 _obj.nodes.push(messageInfo.nodes[j])
             }
         }
+        //console.log(_obj);
         //如果不存在则去数据库查找
         us.mysql.usselect(['172.16.12.5', 'pbl', 'updateRoomData', JSON.stringify(_obj), classId],
             function (ret) {
@@ -1435,17 +1446,18 @@ us.broadcast = function (messageinfo, pageid, type) {
     for (i in messageinfo) {
         _messageinfo = messageinfo[i]; //记录消息消息
         _users = us[type][i] ? us[type][i].user : {}; //记录用户集合
-        // console.log("=================e=============");
-        // console.log(us[type][i]);
-        // console.log(us.connect);
-        // console.log(_messageinfo);
+        console.log("=================a=============");
+        console.log(_users);
         for (j in _users) { //循环处理每个用户处理 给每个用户集合下的用户发送消息
             _pageids = _users[j]; //记录当前用户在每个端登录的页面唯一识别ID
+            console.log("=================g=============");
             console.log(_pageids);
             for (o = 0; o < _pageids.length; o++) { //循环发送给当前用户在每个端登录的用户
                 _recievedpageid = _pageids[o]; //记录接受者页面唯一识别ID  用于区分是否是发送用户
                 if (_recievedpageid != pageid) { //如果接受用户不等于发送用户则发送消息
                     try {
+                        console.log("=================b=============");
+                        console.log(_userconnect[j]);
                         if (_userconnect[j] && _userconnect[j][_recievedpageid]) {
                             _issend = _userconnect[j][_recievedpageid].response.end(JSON.stringify(_messageinfo)); //发送消息
                             if (!_issend) { //如果用户下线了,那么发送消息就会失败
@@ -1995,6 +2007,9 @@ us.addExcel = function (response, excelinfo) {
 us.getcscl = function (response, calssid, pageid, userid) {
     //判断文档是否已在内层中存在
     if (us.cscl[calssid]) {
+        console.log("------------------------ssss----------")
+        console.log(userid)
+        console.log(us.cscl[calssid].user[userid])
         //如果存在则直接返回内层的文档
         if (!us.cscl[calssid].user[userid]) {
             us.cscl[calssid].user[userid] = [pageid];
@@ -2008,6 +2023,7 @@ us.getcscl = function (response, calssid, pageid, userid) {
         catch (e) {
 
         }
+        console.log(us.cscl[calssid])
         //如果不存在则去数据库查找
         us.mysql.usselect(['172.16.12.5', 'pbl', 'select_room', calssid],
             function (ret) {
@@ -2030,6 +2046,8 @@ us.getcscl = function (response, calssid, pageid, userid) {
         if (us.offLineMessage[pageid]) {
             us.offLineMessage[pageid].cscl.indexOf(calssid) == -1 && us.offLineMessage[pageid].cscl.push(calssid); //添加到用户离线消息的连接wrod记录中
         }
+        console.log("------------------------ggggg----------");
+        console.log(us.cscl[calssid])
         //如果不存在则去数据库查找
         us.mysql.usselect(['172.16.12.5', 'pbl', 'select_room', calssid],
             function (ret) {