private void HandleMatchGameMsg(InsightMessage _insightMsg) { var message = (MatchGameMsg)_insightMsg.message; Debug.Log("[ServerMatchMaker] - Received requesting match game"); server.InternalSend(new JoinGameMsg { uniqueId = message.uniqueId, gameUniqueId = GetFastestGame() }, _callbackMsg => { if (_insightMsg.callbackId != 0) { var responseToSend = new InsightNetworkMessage(_callbackMsg) { callbackId = _insightMsg.callbackId }; if (_insightMsg is InsightNetworkMessage netMsg) { server.NetworkReply(netMsg.connectionId, responseToSend); } else { server.InternalReply(responseToSend); } } }); }
private void SendToSpawner(int _connectionId, RequestSpawnStartMsg _message, CallbackHandler _callback = null) { var message = new RequestSpawnStartToSpawnerMsg(_message); if (_connectionId == 0) { server.InternalSend(message, _callback); } else { server.NetworkSend(_connectionId, message, _callback); } }
private void Send(InsightMessageBase _message, CallbackHandler _callback = null) { if (client) { client.NetworkSend(_message, _callback); return; } if (server) { server.InternalSend(_message, _callback); return; } Debug.LogError("[ProcessSpawner] - Not initialized"); }
private void HandleCreateGameMsg(InsightMessage _insightMsg) { var message = (CreateGameMsg)_insightMsg.message; Debug.Log("[GameMasterManager] - Received player requesting game creation"); var requestSpawnStartMsg = new RequestSpawnStartToMasterMsg { gameName = message.gameName, minPlayers = message.minPlayers, maxPlayers = message.maxPlayers }; server.InternalSend(requestSpawnStartMsg, _callbackMsg => { Debug.Log($"[GameMasterManager] - Received games create : {_callbackMsg.status}"); Assert.AreNotEqual(CallbackStatus.Default, _callbackMsg.status); switch (_callbackMsg.status) { case CallbackStatus.Success: { var responseReceived = (RequestSpawnStartMsg)_callbackMsg.message; var playerConnId = 0; if (_insightMsg is InsightNetworkMessage netMsg) { playerConnId = netMsg.connectionId; } gameLaunchers.Add(responseReceived.gameUniqueId, new GameLauncher { playerConnId = playerConnId, playerUniqueId = message.uniqueId, message = new InsightNetworkMessage(new ChangeServerMsg { uniqueId = responseReceived.gameUniqueId, networkAddress = responseReceived.networkAddress, networkPort = responseReceived.networkPort }) { callbackId = _insightMsg.callbackId, status = CallbackStatus.Success } }); break; } case CallbackStatus.Error: { var responseToSend = new InsightNetworkMessage(new ChangeServerMsg()) { callbackId = _insightMsg.callbackId, status = CallbackStatus.Error }; if (_insightMsg is InsightNetworkMessage netMsg) { server.NetworkReply(netMsg.connectionId, responseToSend); } else { server.InternalReply(responseToSend); } break; } case CallbackStatus.Timeout: break; default: throw new ArgumentOutOfRangeException(); } }); }