|
@@ -401,6 +401,7 @@ us.addUser = function (response, type, fileid, userids, userid, pageid) {
|
|
**/
|
|
**/
|
|
us.getuserbytype = function (userids) {
|
|
us.getuserbytype = function (userids) {
|
|
var _userinfo = [];
|
|
var _userinfo = [];
|
|
|
|
+ console.log(us.user);
|
|
for (var i in userids) {
|
|
for (var i in userids) {
|
|
if (us.user[i]) {
|
|
if (us.user[i]) {
|
|
_userinfo.push(us.user[i])
|
|
_userinfo.push(us.user[i])
|
|
@@ -537,13 +538,12 @@ us.deluser = function (userid, pageid) {
|
|
//其他应用的数据
|
|
//其他应用的数据
|
|
// _wordids = us.offLineMessage[pageid].word, //得到加入的所有word
|
|
// _wordids = us.offLineMessage[pageid].word, //得到加入的所有word
|
|
// _excelids = us.offLineMessage[pageid].excel; //得到加入的所有excel
|
|
// _excelids = us.offLineMessage[pageid].excel; //得到加入的所有excel
|
|
-
|
|
|
|
|
|
+ console.log("1111111111111")
|
|
|
|
+ console.log(_csclids)
|
|
console.log(pageid)
|
|
console.log(pageid)
|
|
console.log(us.offLineMessage[pageid])
|
|
console.log(us.offLineMessage[pageid])
|
|
//删除用户离校消息记录
|
|
//删除用户离校消息记录
|
|
delete us.offLineMessage[pageid];
|
|
delete us.offLineMessage[pageid];
|
|
- console.log("1111111111111")
|
|
|
|
- console.log(_csclids)
|
|
|
|
//知识架构的下线的处理
|
|
//知识架构的下线的处理
|
|
for (i = 0; i < _csclids.length; i++) { //循环处理每一个文档
|
|
for (i = 0; i < _csclids.length; i++) { //循环处理每一个文档
|
|
_docinfo = us.cscl[_csclids[i]]; //记录文档信息
|
|
_docinfo = us.cscl[_csclids[i]]; //记录文档信息
|
|
@@ -592,15 +592,15 @@ us.deluser = function (userid, pageid) {
|
|
us.offLine = function () {
|
|
us.offLine = function () {
|
|
var i, j, istrue = true;
|
|
var i, j, istrue = true;
|
|
var _user, _connect = us.connect;
|
|
var _user, _connect = us.connect;
|
|
- console.log(_connect)
|
|
|
|
//循环目前所有的连接用户
|
|
//循环目前所有的连接用户
|
|
for (i in _connect) {
|
|
for (i in _connect) {
|
|
_user = _connect[i];
|
|
_user = _connect[i];
|
|
for (j in _user) {
|
|
for (j in _user) {
|
|
- console.log(j)
|
|
|
|
- //console.log(_user[j].response.connection)
|
|
|
|
//判断用户已下线
|
|
//判断用户已下线
|
|
if (_user[j].response.connection == null || _user[j].response.connection.destroyed) {
|
|
if (_user[j].response.connection == null || _user[j].response.connection.destroyed) {
|
|
|
|
+ console.log("================2===============");
|
|
|
|
+ console.log(i);
|
|
|
|
+ console.log(j);
|
|
us.deluser(i, j); //删除用户的数据
|
|
us.deluser(i, j); //删除用户的数据
|
|
delete _user[j]
|
|
delete _user[j]
|
|
}
|
|
}
|
|
@@ -629,7 +629,6 @@ us.polling = function (requset, response, userid, pageid, type) {
|
|
// console.log("--------" + userid + "-------------" + pageid);
|
|
// console.log("--------" + userid + "-------------" + pageid);
|
|
// //us.offLine(response, userid, pageid)
|
|
// //us.offLine(response, userid, pageid)
|
|
// });
|
|
// });
|
|
-
|
|
|
|
//判断轮询的用户是否在连接池中
|
|
//判断轮询的用户是否在连接池中
|
|
if (us.connect[userid]) {
|
|
if (us.connect[userid]) {
|
|
var _userarray = us.connect[userid], //用户连接池,获取制定用户连接的数量,
|
|
var _userarray = us.connect[userid], //用户连接池,获取制定用户连接的数量,
|
|
@@ -637,25 +636,33 @@ us.polling = function (requset, response, userid, pageid, type) {
|
|
;
|
|
;
|
|
//获取当前连接的用户,如果获取成功那么直接修改用户的连接
|
|
//获取当前连接的用户,如果获取成功那么直接修改用户的连接
|
|
if (_userarray[pageid]) {
|
|
if (_userarray[pageid]) {
|
|
|
|
+ //防止重复多连
|
|
|
|
+ try {
|
|
|
|
+ _userarray[pageid].response.end("");
|
|
|
|
+ }
|
|
|
|
+ catch (e) {
|
|
|
|
+
|
|
|
|
+ }
|
|
_userarray[pageid].response = response;
|
|
_userarray[pageid].response = response;
|
|
if (_messagearray && _messagearray.message.length > 0) {
|
|
if (_messagearray && _messagearray.message.length > 0) {
|
|
response.write(JSON.stringify(_messagearray.message) + "\r\n");
|
|
response.write(JSON.stringify(_messagearray.message) + "\r\n");
|
|
_messagearray.message = [];
|
|
_messagearray.message = [];
|
|
}
|
|
}
|
|
else {
|
|
else {
|
|
- us.offLineMessage[pageid] = us.userOffLineMessage(type); //初始化用户离线消息记录
|
|
|
|
|
|
+ us.offLineMessage[pageid] = us.offLineMessage[pageid] || us.userOffLineMessage(type); //初始化用户离线消息记录
|
|
}
|
|
}
|
|
- return;
|
|
|
|
}
|
|
}
|
|
- //如果用户连接不存在
|
|
|
|
- _userarray[pageid] = us.userConnect(pageid, response); //那么直接添加用户连接 添加到用户连接数组里
|
|
|
|
- us.offLineMessage[pageid] = us.userOffLineMessage(type); //初始化用户离线消息记录
|
|
|
|
|
|
+ else {
|
|
|
|
+ //如果用户连接不存在
|
|
|
|
+ _userarray[pageid] = us.userConnect(pageid, response); //那么直接添加用户连接 添加到用户连接数组里
|
|
|
|
+ us.offLineMessage[pageid] = us.userOffLineMessage(type); //初始化用户离线消息记录
|
|
|
|
+ }
|
|
}
|
|
}
|
|
else {
|
|
else {
|
|
var _userconect = us.userConnect(pageid, response); //创建用户连接对象
|
|
var _userconect = us.userConnect(pageid, response); //创建用户连接对象
|
|
us.connect[userid] = {}; //添加用户连接对象
|
|
us.connect[userid] = {}; //添加用户连接对象
|
|
us.connect[userid][pageid] = _userconect;
|
|
us.connect[userid][pageid] = _userconect;
|
|
- us.offLineMessage[pageid] = us.userOffLineMessage(type); //初始化用户离线消息记录
|
|
|
|
|
|
+ us.offLineMessage[pageid] = us.offLineMessage[pageid] || us.userOffLineMessage(type); //初始化用户离线消息记录
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
@@ -834,24 +841,22 @@ us.updatemindNetwork = function (messageInfo) {
|
|
* @param {object} message 消息信息
|
|
* @param {object} message 消息信息
|
|
*/
|
|
*/
|
|
us.updatecscl = function (messageInfo, classId, ty) {
|
|
us.updatecscl = function (messageInfo, classId, ty) {
|
|
- //messageInfo = messageInfo;
|
|
|
|
if (us.cscl[classId]) {
|
|
if (us.cscl[classId]) {
|
|
var i, j, _is;
|
|
var i, j, _is;
|
|
var _obj = us.cscl[classId].content;
|
|
var _obj = us.cscl[classId].content;
|
|
_obj.backgroundUrl = messageInfo.backgroundUrl;
|
|
_obj.backgroundUrl = messageInfo.backgroundUrl;
|
|
_obj.edges = _obj.edges || [];
|
|
_obj.edges = _obj.edges || [];
|
|
_obj.nodes = _obj.nodes || [];
|
|
_obj.nodes = _obj.nodes || [];
|
|
- // console.log("------------s------------");
|
|
|
|
- // console.log(messageInfo);
|
|
|
|
- // console.log(_obj);
|
|
|
|
- // console.log(ty);
|
|
|
|
|
|
+ //循环线的处理
|
|
for (j = 0; j < messageInfo.edges.length; j++) {
|
|
for (j = 0; j < messageInfo.edges.length; j++) {
|
|
_is = true;
|
|
_is = true;
|
|
for (i = 0; i < _obj.edges.length; i++) {
|
|
for (i = 0; i < _obj.edges.length; i++) {
|
|
if (_obj.edges[i].id == messageInfo.edges[j].id) {
|
|
if (_obj.edges[i].id == messageInfo.edges[j].id) {
|
|
|
|
+ //如果是修改线同时先又存在那就直接修改
|
|
if (ty == "update") {
|
|
if (ty == "update") {
|
|
_obj.edges[i] = messageInfo.edges[j];
|
|
_obj.edges[i] = messageInfo.edges[j];
|
|
}
|
|
}
|
|
|
|
+ //如果是删除线的操作
|
|
else {
|
|
else {
|
|
_obj.edges.splice(i, 1);
|
|
_obj.edges.splice(i, 1);
|
|
}
|
|
}
|
|
@@ -859,6 +864,7 @@ us.updatecscl = function (messageInfo, classId, ty) {
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+ //修改包含了添加和修改,如果没有修改说明是添加的功能
|
|
if (_is && ty == "update") {
|
|
if (_is && ty == "update") {
|
|
_obj.edges.push(messageInfo.edges[j])
|
|
_obj.edges.push(messageInfo.edges[j])
|
|
}
|
|
}
|
|
@@ -867,9 +873,11 @@ us.updatecscl = function (messageInfo, classId, ty) {
|
|
_is = true;
|
|
_is = true;
|
|
for (i = 0; i < _obj.nodes.length; i++) {
|
|
for (i = 0; i < _obj.nodes.length; i++) {
|
|
if (_obj.nodes[i].id == messageInfo.nodes[j].id) {
|
|
if (_obj.nodes[i].id == messageInfo.nodes[j].id) {
|
|
|
|
+ //如果是修改节点
|
|
if (ty == "update") {
|
|
if (ty == "update") {
|
|
_obj.nodes[i] = messageInfo.nodes[j];
|
|
_obj.nodes[i] = messageInfo.nodes[j];
|
|
}
|
|
}
|
|
|
|
+ //如果是删除节点
|
|
else {
|
|
else {
|
|
_obj.nodes.splice(i, 1);
|
|
_obj.nodes.splice(i, 1);
|
|
}
|
|
}
|
|
@@ -877,6 +885,7 @@ us.updatecscl = function (messageInfo, classId, ty) {
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+ //修改包含了添加和修改,如果没有修改说明是添加的功能
|
|
if (_is && ty == "update") {
|
|
if (_is && ty == "update") {
|
|
_obj.nodes.push(messageInfo.nodes[j])
|
|
_obj.nodes.push(messageInfo.nodes[j])
|
|
}
|
|
}
|
|
@@ -1637,8 +1646,7 @@ us.quitcscl = function (response, info) {
|
|
var _docid = info.docId,
|
|
var _docid = info.docId,
|
|
_userid = info.userId,
|
|
_userid = info.userId,
|
|
_pageid = info.pageId,
|
|
_pageid = info.pageId,
|
|
- _type = info.type,
|
|
|
|
- _messagetype = 'us.cscl';
|
|
|
|
|
|
+ _type = info.type;
|
|
var _docinfo = us[_type][_docid]; //获取文档信息
|
|
var _docinfo = us[_type][_docid]; //获取文档信息
|
|
//判断是否存在文档信息
|
|
//判断是否存在文档信息
|
|
if (_docinfo) {
|
|
if (_docinfo) {
|
|
@@ -2172,14 +2180,11 @@ us.getcscl = function (response, calssid, pageid, userid) {
|
|
var _user = us.getuserbytype(us.cscl[calssid].user); //获取当前项目下所有的用户信息
|
|
var _user = us.getuserbytype(us.cscl[calssid].user); //获取当前项目下所有的用户信息
|
|
var _data = us.cscl[calssid].content; //保存在内存的知识建构数据
|
|
var _data = us.cscl[calssid].content; //保存在内存的知识建构数据
|
|
if (ret) {
|
|
if (ret) {
|
|
- //console.log("eeee");
|
|
|
|
- //console.log(us.offLineMessage[pageid]);
|
|
|
|
ret[0][0].user = _user; //这里是项目当前所有用户
|
|
ret[0][0].user = _user; //这里是项目当前所有用户
|
|
ret[0][0].data = _data; //把思维网格的内容转化成数组
|
|
ret[0][0].data = _data; //把思维网格的内容转化成数组
|
|
if (userid && us.user[userid]) {
|
|
if (userid && us.user[userid]) {
|
|
us.sendUser(us.user[userid], "cscl", pageid, calssid); //加入知识建构项目后通知所有的用户
|
|
us.sendUser(us.user[userid], "cscl", pageid, calssid); //加入知识建构项目后通知所有的用户
|
|
}
|
|
}
|
|
- //console.log(ret[0][0].user)
|
|
|
|
response.end(JSON.stringify(ret)); //返回文档内容
|
|
response.end(JSON.stringify(ret)); //返回文档内容
|
|
}
|
|
}
|
|
else {
|
|
else {
|
|
@@ -2201,11 +2206,13 @@ us.getcscl = function (response, calssid, pageid, userid) {
|
|
function (ret) {
|
|
function (ret) {
|
|
var _user = us.getuserbytype(us.cscl[calssid].user);
|
|
var _user = us.getuserbytype(us.cscl[calssid].user);
|
|
if (ret) {
|
|
if (ret) {
|
|
- //console.log("bbbbbbbbbbbbbbb");
|
|
|
|
- //console.log(us.offLineMessage[pageid]);
|
|
|
|
ret[0][0].user = _user; //这里是项目当前所有用户
|
|
ret[0][0].user = _user; //这里是项目当前所有用户
|
|
- us.cscl[calssid].content = JSON.parse(ret[0][0].data); //把思维网格的内容转化成数组
|
|
|
|
- //us.sendUser(us.user[userid], "cscl", pageid, calssid); //加入知识建构项目后通知所有的用户
|
|
|
|
|
|
+ try {
|
|
|
|
+ us.cscl[calssid].content = JSON.parse(ret[0][0].data); //把思维网格的内容转化成数组
|
|
|
|
+ }
|
|
|
|
+ catch (e) {
|
|
|
|
+ us.cscl[calssid].content = ret[0][0].data;
|
|
|
|
+ }
|
|
response.end(JSON.stringify(ret)); //返回文档内容
|
|
response.end(JSON.stringify(ret)); //返回文档内容
|
|
}
|
|
}
|
|
else {
|
|
else {
|