public void HandleChatMsg(InsightNetworkMessage netMsg) { Debug.Log("[InsightClient] - HandleChatMsg()"); ChatMsg message = netMsg.ReadMessage <ChatMsg>(); chatLog += message.Origin + ": " + message.Data + "\n"; }
private void HandleChatMsg(InsightNetworkMessage netMsg) { if (server.logNetworkMessages) { Debug.Log("[InsightServer] - HandleChatMsg()"); } ChatMsg message = netMsg.ReadMessage <ChatMsg>(); server.SendToAll((short)MsgId.Chat, message); //Broadcast back to all other clients }
private void HandleSpawnerStatusMsg(InsightNetworkMessage netMsg) { SpawnerStatus message = netMsg.ReadMessage <SpawnerStatus>(); for (int i = 0; i < registeredSpawners.Count; i++) { if (registeredSpawners[i].connectionId == netMsg.connectionId) { SpawnerContainer instance = registeredSpawners[i]; instance.CurrentThreads = message.CurrentThreads; } } }
private void HandleUnregisterZoneMsg(InsightNetworkMessage netMsg) { print("HandleUnregisterZoneMsg"); UnregisterZoneMsg message = netMsg.ReadMessage <UnregisterZoneMsg>(); foreach (ZoneContainer zone in ZoneList) { if (zone.UniqueID.Equals(message.UniqueID)) { ZoneList.Remove(zone); } } }
private void HandleChangeServersMsg(InsightNetworkMessage netMsg) { ChangeServers message = netMsg.ReadMessage <ChangeServers>(); if (client.logNetworkMessages) { Debug.Log("[InsightClient] - Connecting to GameServer: " + message.NetworkAddress + ":" + message.NetworkPort + "/" + message.SceneName); } networkManager.networkAddress = message.NetworkAddress; transport.port = message.NetworkPort; SceneManager.LoadScene(message.SceneName); networkManager.StartClient(); }
private void HandleRegisterSpawnerMsg(InsightNetworkMessage netMsg) { RegisterSpawnerMsg message = netMsg.ReadMessage <RegisterSpawnerMsg>(); //Add the new child spawner to the list of spawners registeredSpawners.Add(new SpawnerContainer() { uniqueId = message.UniqueID, connectionId = netMsg.connectionId, MaxThreads = message.MaxThreads }); if (server.logNetworkMessages) { Debug.Log("[MasterSpawner] - New Process Spawner Regsitered"); } }
private void HandleRegisterZoneMsg(InsightNetworkMessage netMsg) { print("HandleRegisterZoneMsg"); RegisterZoneMsg message = netMsg.ReadMessage <RegisterZoneMsg>(); ZoneList.Add(new ZoneContainer() { UniqueID = message.UniqueID, ScenePath = message.ScenePath, NetworkAddress = message.NetworkAddress, NetworkPort = message.NetworkPort, MaxPlayers = message.MaxPlayers, CurentPlayers = message.CurentPlayers }); }
private void HandleRegisterGameMsg(InsightNetworkMessage netMsg) { RegisterGameMsg message = netMsg.ReadMessage <RegisterGameMsg>(); if (server.logNetworkMessages) { Debug.Log("Received GameRegistration request"); } registeredGameServers.Add(new GameContainer() { connectionId = netMsg.connectionId, UniqueId = message.UniqueID, SceneName = message.SceneName, NetworkAddress = message.NetworkAddress, NetworkPort = message.NetworkPort }); }
//This is just an example. No actual authentication happens. //You would need to replace with your own logic. Perhaps with a DB connection. private void HandleLoginMsg(InsightNetworkMessage netMsg) { LoginMsg message = netMsg.ReadMessage <LoginMsg>(); if (server.logNetworkMessages) { Debug.Log("[InsightServer] - Login Received: " + message.AccountName + " / " + message.AccountPassword); } registeredUsers.Add(new UserContainer() { username = message.AccountName, uniqueId = Guid.NewGuid().ToString(), connectionId = netMsg.connectionId }); netMsg.Reply((short)MsgId.Status, new StatusMsg() { Text = "Login Sucessful!" }); }
private void HandleSpawnRequest(InsightNetworkMessage netMsg) { RequestSpawn message = netMsg.ReadMessage <RequestSpawn>(); if (SpawnThread(message)) { //netMsg.Reply((short)MsgId.RequestSpawn, new RequestSpawn() { // SceneName = message.SceneName, // NetworkAddress = SpawnerNetworkAddress, // UniqueID = Guid.NewGuid().ToString() }); } else { netMsg.Reply((short)MsgId.Error, new ErrorMsg() { Text = "[ProcessSpawner] - Spawn failed" }); } }
private void HandleChatMessage(InsightNetworkMessage netMsg) { InsightChatMessage message = netMsg.ReadMessage <InsightChatMessage>(); switch (message.ChannelType) { //Send message from Origin to Target case (short)ChatChannelType.Private: Debug.Log("Type: " + message.ChannelType + " Origin: " + message.Origin + " Target: " + message.Target + " Message: " + message.Message); //NetworkConnection conn = insightServer.FindConnectionByPlayer(message.Target); //conn.Send(InsightChatMessage.MsgId, message); break; //Send message to all players on same Zone case (short)ChatChannelType.Public: Debug.Log("Type: " + message.ChannelType + " Origin: " + message.Origin + " Message: " + message.Message); //How to find what zone an player is in? break; //Send to all players on all zones (admin only later) case (short)ChatChannelType.Global: Debug.Log("Type: " + message.ChannelType + " Origin: " + message.Origin + " Message: " + message.Message); //How to find all players logged into all zones. break; case (short)ChatChannelType.Party: Debug.Log("Type: " + message.ChannelType + " Origin: " + message.Origin + " Message: " + message.Message); break; case (short)ChatChannelType.Guild: Debug.Log("Type: " + message.ChannelType + " Origin: " + message.Origin + " Message: " + message.Message); break; default: Debug.LogError("Received unexpected ChatChannelType"); break; } }
//Instead of handling the msg here we will forward it to an available spawner. private void HandleSpawnRequestMsg(InsightNetworkMessage netMsg) { RequestSpawn message = netMsg.ReadMessage <RequestSpawn>(); //Get all spawners that have atleast 1 slot free List <SpawnerContainer> freeSlotSpawners = new List <SpawnerContainer>(); foreach (SpawnerContainer spawner in registeredSpawners) { if (spawner.CurrentThreads < spawner.MaxThreads) { freeSlotSpawners.Add(spawner); } } //sort by least busy spawner first freeSlotSpawners = freeSlotSpawners.OrderBy(x => x.CurrentThreads).ToList(); server.SendToClient(freeSlotSpawners[0].connectionId, (short)MsgId.RequestSpawn, message, (callbackStatus, reader) => { if (callbackStatus == CallbackStatus.Ok) { RequestSpawn callbackResponse = reader.ReadMessage <RequestSpawn>(); if (server.logNetworkMessages) { Debug.Log("[Spawn Callback] Game Created on Child Spawner: " + callbackResponse.UniqueID); } netMsg.Reply((short)MsgId.RequestSpawn, callbackResponse); } if (callbackStatus == CallbackStatus.Timeout) { } if (callbackStatus == CallbackStatus.Error) { } }); }
private void HandleZoneServerSpawnRequest(InsightNetworkMessage netMsg) { ZoneServerSpawnRequest message = netMsg.ReadMessage <ZoneServerSpawnRequest>(); print("HandleZoneServerSpawnRequest - " + message.SceneName); }