public override void OnServerReceive(TransportEventData eventData) { CentralServerPeerInfo tempPeerInfo; switch (eventData.type) { case ENetworkEvent.ConnectEvent: Logging.Log(LogTag, "OnPeerConnected peer.ConnectionId: " + eventData.connectionId); ConnectionIds.Add(eventData.connectionId); break; case ENetworkEvent.DataEvent: ReadPacket(eventData.connectionId, eventData.reader); break; case ENetworkEvent.DisconnectEvent: Logging.Log(LogTag, "OnPeerDisconnected peer.ConnectionId: " + eventData.connectionId + " disconnectInfo.Reason: " + eventData.disconnectInfo.Reason); ConnectionIds.Remove(eventData.connectionId); // Remove disconnect map spawn server MapSpawnServerPeers.Remove(eventData.connectionId); // Remove disconnect map server if (MapServerPeers.TryGetValue(eventData.connectionId, out tempPeerInfo)) { MapServerPeersByMapId.Remove(tempPeerInfo.extra); MapServerPeersByInstanceId.Remove(tempPeerInfo.extra); MapServerPeers.Remove(eventData.connectionId); RemoveMapUsers(eventData.connectionId); } break; case ENetworkEvent.ErrorEvent: Logging.LogError(LogTag, "OnPeerNetworkError endPoint: " + eventData.endPoint + " socketErrorCode " + eventData.socketError + " errorMessage " + eventData.errorMessage); break; } }
protected override void OnStopServer() { base.OnStopServer(); MapUsersByCharacterId.Clear(); ConnectionIdsByCharacterId.Clear(); ConnectionIdsByCharacterName.Clear(); MapSpawnServerPeers.Clear(); MapServerPeers.Clear(); MapServerPeersByMapId.Clear(); MapServerPeersByInstanceId.Clear(); }