@tiledesk/tiledesk-server 2.3.17 → 2.3.18

Sign up to get free protection for your applications and to get access to all the features.
@@ -169,8 +169,18 @@ class WebSocketServer {
169
169
 
170
170
  winston.debug(' req.user._id: '+ req.user);
171
171
 
172
+ if (!topic) {
173
+ winston.error('WebSocket - Error getting topic. Topic can t be null');
174
+ return reject('WebSocket - Error getting topic. Topic can t be null');
175
+ }
172
176
  var urlSub = topic.split('/');
173
177
 
178
+ if (!urlSub || (urlSub && urlSub.length==0)) {
179
+ winston.error('WebSocket - Error getting topic. Topic is not properly configured');
180
+ return reject('WebSocket - Error getting topic. Topic is not properly configured');
181
+ }
182
+ // Error getting Project Cast to ObjectId failed for value "N7VJlLZ1" (type string) at path "_id" for model "project" {"kind":"ObjectId","path":"_id","reason":{},"stack":"CastError: Cast to ObjectId failed for value \"N7VJlLZ1\" (type string) at path \"_id\" for model \"project\"\n at model.Query.exec (/usr/src/app/node_modules/mongoose/lib/query.js:4498:21)\n at /usr/src/app/websocket/webSocketServer.js:180:14\n at new Promise (<anonymous>)\n at Object.onSubscribeCallback [as onSubscribe] (/usr/src/app/websocket/webSocketServer.js:167:14)\n at PubSub.handleReceivedClientMessage (/usr/src/app/websocket/pubsub.js:358:57)\n at runMicrotasks (<anonymous>)\n at processTicksAndRejections (internal/process/task_queues.js:97:5)","stringValue":"\"N7VJlLZ1\"","value":"N7VJlLZ1","valueType":"string"}
183
+
174
184
  var projectId = urlSub[1];
175
185
  winston.debug('projectId: '+projectId);
176
186
 
@@ -590,11 +600,12 @@ class WebSocketServer {
590
600
  winston.debug('messageCreateKey: ' + messageCreateKey);
591
601
 
592
602
  messageEvent.on(messageCreateKey, function (message) {
603
+ setImmediate(async () => {
593
604
  winston.debug('messageEvent websocket server: '+messageCreateKey, message);
594
605
  if (message.request) {
595
606
  pubSubServer.handlePublishMessage ('/'+message.id_project+'/requests/'+message.request.request_id+'/messages', message, undefined, true, "CREATE");
596
607
  }
597
-
608
+ });
598
609
  });
599
610
 
600
611
  // var reconnect = require('./reconnect');
@@ -604,7 +615,8 @@ class WebSocketServer {
604
615
  }
605
616
  winston.debug('requestCreateKey: ' + requestCreateKey);
606
617
  requestEvent.on(requestCreateKey, async function (request) {
607
- // TODO setImmediate(() => {
618
+ setImmediate(async () => {
619
+
608
620
  winston.debug('requestEvent websocket server: '+requestCreateKey, request);
609
621
  // TODO scarta riquesta se agente (req.user._id) non sta ne in participants ne in agents
610
622
 
@@ -643,7 +655,7 @@ class WebSocketServer {
643
655
  pubSubServer.handlePublishMessage ('/'+request.id_project+'/requests', request, undefined, true, "CREATE");
644
656
  pubSubServer.handlePublishMessage ('/'+request.id_project+'/requests/'+request.request_id, request, undefined, true, "CREATE");
645
657
  }
646
-
658
+ });
647
659
  });
648
660
 
649
661
  var requestUpdateKey = 'request.update';
@@ -653,6 +665,8 @@ class WebSocketServer {
653
665
 
654
666
  winston.debug('requestUpdateKey: ' + requestUpdateKey);
655
667
  requestEvent.on(requestUpdateKey, async function(request) {
668
+ setImmediate(async () => {
669
+
656
670
  // TODO setImmediate(() => {
657
671
  winston.debug('requestEvent websocket server: '+requestUpdateKey, request);
658
672
  if (request.preflight===false && request.status > requestConstants.TEMP) {
@@ -694,7 +708,7 @@ class WebSocketServer {
694
708
  pubSubServer.handlePublishMessage ('/'+request.id_project+'/requests', requestJSON, undefined, true, "UPDATE");
695
709
  pubSubServer.handlePublishMessage ('/'+request.id_project+'/requests/'+request.request_id, requestJSON, undefined, true, "UPDATE");
696
710
  }
697
-
711
+ });
698
712
  });
699
713
 
700
714
 
@@ -709,6 +723,8 @@ class WebSocketServer {
709
723
  }
710
724
  winston.debug('projectuserUpdateKey: ' + projectuserUpdateKey);
711
725
  authEvent.on(projectuserUpdateKey,function(data) {
726
+ setImmediate(async () => {
727
+
712
728
  var pu = data.updatedProject_userPopulated;
713
729
  winston.debug('ws pu', pu);
714
730
 
@@ -724,7 +740,7 @@ class WebSocketServer {
724
740
  }
725
741
  winston.debug('userId:'+ userId);
726
742
  pubSubServer.handlePublishMessage ('/'+pu.id_project+'/project_users/users/'+userId, pu, undefined, true, "UPDATE");
727
-
743
+ });
728
744
  });
729
745
 
730
746
 
@@ -735,6 +751,7 @@ class WebSocketServer {
735
751
  }
736
752
  winston.debug('eventEmitKey: ' + eventEmitKey);
737
753
  eventEvent.on(eventEmitKey,function(event) {
754
+ setImmediate(async () => {
738
755
  winston.debug('event', event);
739
756
  if (event.project_user === undefined) {
740
757
  //with "faqbot.answer_not_found" project_user is undefined but it's ok
@@ -743,6 +760,7 @@ class WebSocketServer {
743
760
  }
744
761
  pubSubServer.handlePublishMessage ('/'+event.id_project+'/events/'+event.project_user._id, event, undefined, true, "CREATE");
745
762
  });
763
+ });
746
764
 
747
765
 
748
766
  // https://github.com/websockets/ws/blob/master/examples/express-session-parse/index.js