public NetEventType PollReceive(out uint clientId, out int channelId, ref byte[] data, int bufferSize, out int receivedSize, out byte error) { NetworkEventType eventType = NetworkTransport.Receive(out int hostId, out int connectionId, out channelId, data, bufferSize, out receivedSize, out byte err); clientId = new NetId((byte)hostId, (ushort)connectionId, false).GetClientId(); NetworkError errorType = (NetworkError)err; if (errorType == NetworkError.Timeout) { eventType = NetworkEventType.DisconnectEvent; //In UNET. Timeouts are not disconnects. We have to translate that here. } error = 0; //Translate NetworkEventType to NetEventType switch (eventType) { case NetworkEventType.DataEvent: return(NetEventType.Data); case NetworkEventType.ConnectEvent: return(NetEventType.Connect); case NetworkEventType.DisconnectEvent: return(NetEventType.Disconnect); case NetworkEventType.Nothing: return(NetEventType.Nothing); case NetworkEventType.BroadcastEvent: return(NetEventType.Nothing); } return(NetEventType.Nothing); }
public void DisconnectClient(uint clientId) { NetId netId = new NetId(clientId); if (netId.IsServer()) { return; } NetworkTransport.Disconnect(netId.HostId, netId.ConnectionId, out byte error); }
public int GetRemoteDelayTimeMS(uint clientId, int remoteTimestamp, out byte error) { NetId netId = new NetId(clientId); if (netId.IsServer()) { netId.ConnectionId = (ushort)serverConnectionId; netId.HostId = (byte)serverHostId; } return(NetworkTransport.GetRemoteDelayTimeMS(netId.HostId, netId.ConnectionId, remoteTimestamp, out error)); }
public int GetCurrentRTT(uint clientId, out byte error) { NetId netId = new NetId(clientId); if (netId.IsServer()) { netId.ConnectionId = (ushort)serverConnectionId; netId.HostId = (byte)serverHostId; } return(NetworkTransport.GetCurrentRTT(netId.HostId, netId.ConnectionId, out error)); }
public void SendQueue(uint clientId, out byte error) { NetId netId = new NetId(clientId); if (netId.IsServer()) { netId.ConnectionId = (ushort)serverConnectionId; netId.HostId = (byte)serverHostId; } NetworkTransport.SendQueuedMessages(netId.HostId, netId.ConnectionId, out error); }
public void QueueMessageForSending(uint clientId, byte[] dataBuffer, int dataSize, int channelId, bool skipqueue, out byte error) { NetId netId = new NetId(clientId); if (netId.IsServer()) { netId.ConnectionId = (ushort)serverConnectionId; netId.HostId = (byte)serverHostId; } if (skipqueue) { RelayTransport.Send(netId.HostId, netId.ConnectionId, channelId, dataBuffer, dataSize, out error); } else { RelayTransport.QueueMessageForSending(netId.HostId, netId.ConnectionId, channelId, dataBuffer, dataSize, out error); } }