Exemplo n.º 1
0
    private void OnMsgRecv(object sender, Server.ServerMsgEventArgs e)
    {
        if (!connectionManager.Contains(e.Client))
        {
            // Do this only if it is a new connection
            Packet p = PacketBuilder.Build(Packet.PacketType.Text, Constants.WelcomeMsg);
            server.Send(e.Client, p.ToArray(), p.Size);
            //Debug.Log("[S->C]: Welcome");

            Trans spawn = spawnTrans[connectionManager.Count % spawnTrans.Count];
            p = PacketBuilder.Build(Packet.PacketType.Spawn, spawn);
            server.Send(e.Client, p.ToArray(), p.Size);
            //Debug.Log("[S->C]: Spawn");
        }
        Connection connection = connectionManager.AddOrUpdateConnection(e.Client);

        int    dataIndex = 0;
        Packet packet    = PacketBuilder.Parse(e.Buffer, ref dataIndex);

        switch (packet.Type)
        {
        case Packet.PacketType.Text:
            string text = ((PacketText)packet).Data;
            if (text == Constants.ServeRequest)
            {
                Debug.Log("Serving Ball");
                ballController.serve = true;
            }
            Debug.Log("[C(" + e.Client + ")->S]: " + text
                      + " (" + packet.Size + " of " + e.Len + " bytes)");
            foreach (var c in connectionManager.Connections)
            {
                if (c.endPoint == e.Client)
                {
                    continue;
                }

                server.Send(c.endPoint, packet.ToArray(), packet.Size);
            }
            break;

        case Packet.PacketType.Sensors:
            List <Trans> transforms = ((PacketSensors)packet).Data;
            connection.clientData.Update(transforms);
            break;

        case Packet.PacketType.Benchmark:
            NetBenchmarks b = ((PacketBenchmark)packet).Data;
            Debug.Log("RTT: " + (b.recvTimeStamp - b.sendTimeStamp) + " ms.");
            break;

        default:
            Debug.Assert(false);
            Debug.LogError("Invalid PacketType" + " (" + packet.Size + " of " + e.Len + " bytes)");
            break;
        }
    }
    private void OnMsgRecv(object s, Server.ServerMsgEventArgs e)
    {
        Debug.Log("[" + e.Client.ToString() + "]: " + Encoding.ASCII.GetString(e.Buffer, 0, e.Len));

        // Add client to connectionManager
        //connectionManager.AddConnection(e.Client);

        //server.Send(e.Client, e.Buffer, e.Len);
    }