Просмотр исходного кода

BugFix: prevent processing when socketIoService is not initialized

Yuki Takei 5 лет назад
Родитель
Сommit
fe42752fa1
2 измененных файлов с 7 добавлено и 1 удалено
  1. 4 0
      src/server/service/socket-io.js
  2. 3 1
      src/server/service/system-events/sync-page-status.js

+ 4 - 0
src/server/service/socket-io.js

@@ -2,6 +2,10 @@ const socketIo = require('socket.io');
 
 
 class SocketIoService {
 class SocketIoService {
 
 
+  get isInitialized() {
+    return (this.io != null);
+  }
+
   attachServer(server) {
   attachServer(server) {
     this.io = socketIo(server, {
     this.io = socketIo(server, {
       transports: ['websocket'],
       transports: ['websocket'],

+ 3 - 1
src/server/service/system-events/sync-page-status.js

@@ -37,7 +37,9 @@ class SyncPageStatusService extends S2sMessageHandlable {
     const { socketIoService } = this;
     const { socketIoService } = this;
 
 
     // emit the updated information to clients
     // emit the updated information to clients
-    socketIoService.getDefaultSocket().emit(socketIoEventName, { page, user });
+    if (socketIoService.isInitialized) {
+      socketIoService.getDefaultSocket().emit(socketIoEventName, { page, user });
+    }
   }
   }
 
 
   async publishToOtherServers(socketIoEventName, page, user) {
   async publishToOtherServers(socketIoEventName, page, user) {