Пример #1
0
    private void Server_OnClientConnected(RemoteClient client)
    {
        logLine("Client connected: " + client.RemoteEndpoint.ToString());
        clients++;
        NumClientsText.text = clients.ToString() + "/" + MaxClients.ToString();

        //**** ***** **** ****
        ReliableEndpoint reliableEndpoint = new ReliableEndpoint();

        reliableEndpoint.TransmitCallback = (payload, size) =>
        {
            client.SendPayload(payload, size);
        };
        reliableEndpoint.ReceiveCallback = (message, messageSize) =>
        {
            MessageHandler(client, message, messageSize);
        };
        endpointsByClient.Add(client, reliableEndpoint);
        //**** ** **** *** ****

        //NetworkSpawnPlayer(client);
        SPAWN_PLAYER.Send(client, client.ClientID, new Vector3(0, 0, 0), new Quaternion(0, 0, 0, 1));

        //if have 1 player -> start send position data to clients
        if (players.Count == 1)
        {
            StartCoroutine(updateSender());
        }
    }
Пример #2
0
        private static void Server_OnClientMessageReceived(RemoteClient sender, byte[] payload, int payloadSize)
        {
            Console.WriteLine("Received message from " + sender.ClientID);

            // just send it back to them
            sender.SendPayload(payload, payloadSize);
        }
Пример #3
0
    public void ReliableTransmitCallback(byte[] buffer, int size)
    {
        // this will be called when a datagram is ready to be sent across the network.
        // buffer is byte[] and size is number of bytes in the buffer
        // do not keep a reference to the buffer as it will be pooled after this function returns

        try
        {
            remoteClient.SendPayload(buffer, size);
        }
        catch (System.Exception ex)
        {
            Log(ex.ToString());
            throw;
        }
    }