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()); } }
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); }
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; } }