private void OnClientConnected(Guid clientId) { foreach (var kvp in state) { server.Send(clientId, new FragmentPacket(fragmentKeyFactory.GetBytes(kvp.Key), fragmentFactory.GetBytes(kvp.Value))); } }
private void OnClientJoined(Guid clientId, string clientName) { Debug.Log(string.Format("Sending all existing mines to client {0} because it joined the server", clientId)); foreach (var mine in mines.Values) { karmanServer.Send(clientId, mine.GetSpawnPacket()); } }
private void OnClientJoined(Guid clientId, string clientName) { CharacterData character = new CharacterData( Guid.NewGuid(), clientId, UnityEngine.Random.insideUnitCircle * 4f, Color.HSVToRGB((totalNumberOfCharactersJoined++ % 7) / 7f, 1f, 1f), Instantiate(characterPrefab, transform) ); Debug.Log(string.Format("Spawning a new character {0} because client {1} (with name {2}) joined the server", character.GetId(), clientId, clientName)); foreach (var otherCharacter in characters.Values) { karmanServer.Send(clientId, otherCharacter.GetSpawnPacket()); } karmanServer.Broadcast(character.GetSpawnPacket()); characters.Add(clientId, character); }
protected void FixedUpdate() { if (nextPingMoment <= Time.realtimeSinceStartup) { nextPingMoment += pingInterval; PingMoment pingMoment = new PingMoment(); pingMoments.Add(pingMoment.GetPingId(), pingMoment); foreach (var clientKvp in latencyDataPerClient) { Guid clientId = clientKvp.Key; ClientLatencyData clientData = clientKvp.Value; if (clientData.GetConnected()) { karmanServer.Send(clientId, pingMoment.GetPingPacket()); } } log.Trace("Send ping packet with ping id {0} to {1} client(s)", pingMoment.GetPingId(), pingMoment.GetNumberOfPingsInProgress()); } }