using System; using UnityEngine; namespace Mirror { public class NetworkConnectionToClient : NetworkConnection { static readonly ILogger logger = LogFactory.GetLogger(); public NetworkConnectionToClient(int networkConnectionId) : base(networkConnectionId) { } public override string address => Transport.activeTransport.ServerGetClientAddress(connectionId); internal override void Send(ArraySegment segment, int channelId = Channels.DefaultReliable) { if (logger.LogEnabled()) logger.Log("ConnectionSend " + this + " bytes:" + BitConverter.ToString(segment.Array, segment.Offset, segment.Count)); // validate packet size first. if (ValidatePacketSize(segment, channelId)) { Transport.activeTransport.ServerSend(connectionId, channelId, segment); } } /// /// Disconnects this connection. /// public override void Disconnect() { // set not ready and handle clientscene disconnect in any case // (might be client or host mode here) isReady = false; Transport.activeTransport.ServerDisconnect(connectionId); RemoveObservers(); } } }