Browse Source

fix chat does not started correctly

alexlcdee 8 years ago
parent
commit
d73884546d
2 changed files with 17 additions and 10 deletions
  1. 16 9
      src/App.ts
  2. 1 1
      src/Client.ts

+ 16 - 9
src/App.ts

@@ -17,18 +17,25 @@ export class App {
         this.conversationsManager = conversationsManager;
         this.logger = logger;
 
-        let httpServer = require('http').createServer(apiServer.processRequest.bind(apiServer)).listen(config.port, config.host);
+        this.logger.debug(`Set all users to Offline`);
+        this.apiConnector.execute('/user', {
+            action: 'setAllOffline'
+        }).then(() => {
+            let httpServer = require('http').createServer(apiServer.processRequest.bind(apiServer)).listen(config.port, config.host);
 
-        let socketIO = require('socket.io')(httpServer);
-        socketIO.on('connection', (socket) => {
-            socket.on('userConnect', (data) => {
-                this.logger.debug(`Client connected`);
-                this.clientsManager.add(socket, data, this.conversationsManager);
+            let socketIO = require('socket.io')(httpServer);
+            socketIO.on('connection', (socket) => {
+                socket.on('userConnect', (data) => {
+                    this.logger.debug(`Client connected`);
+                    this.clientsManager.add(socket, data, this.conversationsManager);
+                });
             });
-        });
 
-        this.logger.info(`Server started at ${config.host}:${config.port}`);
-        this.logger.debug(`App started in debug mode`);
+            this.logger.info(`Server started at ${config.host}:${config.port}`);
+            this.logger.debug(`App started in debug mode`);
+        }).catch((err) => {
+            this.logger.error(err);
+        });
     }
 }
 

+ 1 - 1
src/Client.ts

@@ -163,7 +163,6 @@ export namespace Clients {
             this.timeToPay = data.timeToPay;
             this._coefficient = parseInt(data.coefficient);
             setInterval(this.releaseQueue.bind(this), 10000);
-            this.status = true;
         }
 
         public setConversationsManager(manager: Interfaces.ConversationsManagerInterface) {
@@ -192,6 +191,7 @@ export namespace Clients {
         addSocket(socket: SocketIO.Socket) {
             this.logger.debug(`Add new socket for client with ID=${this.id}`);
             this.sockets.push(socket);
+            this.status = true;
             this.logger.debug(`Client with ID=${this.id} now has ${this.sockets.length} sockets`);
             let id = this.sockets.length - 1;
             socket.on('disconnect', (data) => {