public override void handleMessage(QTMessage message) { switch (message.messageType) { case QTMessage.type.WORKER_READY: { MasterServerQTClient qtRemoteClient = (MasterServerQTClient)client; WorkerReadyMessage workerReadyMessage = (WorkerReadyMessage)message; qtRemoteClient.remoteType = QTClient.clientType.WORKER_SERVER; MasterServerWorker worker = MasterServerManager.instance.workersManager.workers[workerReadyMessage.id]; RoomInfoMessage roomInfoMessage = new RoomInfoMessage(); roomInfoMessage.room = worker.room; qtRemoteClient.sendMessage(roomInfoMessage); worker.onWorkerReady(); break; } case QTMessage.type.WORKER_INFO: { MasterServerQTClient qtRemoteClient = (MasterServerQTClient)client; WorkerInfoMessage workerInfoMessage = (WorkerInfoMessage)message; MasterServerWorker worker = MasterServerManager.instance.workersManager.workers[workerInfoMessage.id]; worker.room.ip = workerInfoMessage.ip; QTDebugger.instance.debug(QTDebugger.debugType.BASE, "Recieved info from Worker(" + worker.room.id + ")..."); break; } } }
public override void handleConnects() { while (true) { TcpClient tcpClient = manager.server.AcceptTcpClient(); MasterServerQTClient client = new MasterServerQTClient(manager, tcpClient); client.onConnectionClosed += manager.onClientDisconnected; manager.onClientConnected(client); } }
public override void handleMessage(QTMessage message) { switch (message.messageType) { case QTMessage.type.WORKER_DEBUG: MasterServerQTClient qtRemoteClient = (MasterServerQTClient)client; WorkerDebugMessage debugMessage = (WorkerDebugMessage)message; QTDebugger.instance._debug(debugMessage.debugType, QTDebugger.debugType.NETWORK_WORKER, debugMessage.message); break; } }
public override void handleMessage(QTMessage message) { switch (message.messageType) { case QTMessage.type.REQUEST_ROOMS: RequestRoomsMessage requestMessage = (RequestRoomsMessage)message; MasterServerQTClient qtRemoteClient = (MasterServerQTClient)client; RoomsMessage roomsMessage = new RoomsMessage(requestMessage); roomsMessage.rooms = MasterServerManager.instance.workersManager.getRooms(); qtRemoteClient.sendMessage(roomsMessage); break; } }
public override void handleMessage(QTMessage message) { switch (message.messageType) { case QTMessage.type.REQUEST_NEW_INSTANCE: MasterServerQTClient qtRemoteClient = (MasterServerQTClient)client; RequestNewInstanceMessage requestMessage = (RequestNewInstanceMessage)message; MasterServerWorker worker = MasterServerManager.instance.workersManager.spawnWorker(Guid.NewGuid().ToString()); InstanceMessage instanceMessage = new InstanceMessage(requestMessage); instanceMessage.room = worker.room; worker.onWorkerReady += () => { sendRequestInstanceResponse(qtRemoteClient, instanceMessage); }; break; } }
public void sendRequestInstanceResponse(MasterServerQTClient qtRemoteClient, InstanceMessage message) { qtRemoteClient.sendMessage(message); }