Beispiel #1
0
 private void OnClientConnected(Guid clientId)
 {
     foreach (var kvp in state)
     {
         server.Send(clientId, new FragmentPacket(fragmentKeyFactory.GetBytes(kvp.Key), fragmentFactory.GetBytes(kvp.Value)));
     }
 }
Beispiel #2
0
 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);
    }
Beispiel #4
0
 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());
     }
 }