/// <summary> /// Unregister from a reliability's events. /// </summary> /// <param name="reliability"> /// The reliability. /// </param> private void UnregisterFromEvents(MxReliability reliability) { reliability.MessageAcknowledged -= this.OnReliabilityMessageAcknowledged; reliability.MessageAcknowledged -= this.OnReliabilityMessageReceived; reliability.FragmentReceived -= this.OnReliabilityFragmentReceived; reliability.FragmentSent -= this.OnReliabilityFragmentSent; }
/// <summary> /// Register for a reliability's events. /// </summary> /// <param name="reliability"> /// The reliability. /// </param> private void RegisterForEvents(MxReliability reliability) { reliability.MessageAcknowledged += this.OnReliabilityMessageAcknowledged; reliability.MessageReceived += this.OnReliabilityMessageReceived; reliability.FragmentReceived += this.OnReliabilityFragmentReceived; reliability.FragmentSent += this.OnReliabilityFragmentSent; }
private MxClient ThreadSafeGetOrCreateClient(IPEndPoint endpoint) { MxClient client; lock (_mxClientGroupLock) { client = _mxClientGroups .Select(x => x.Value.RealtimeClients.FirstOrDefault(y => y.Endpoint.ToString() == endpoint.ToString())) .FirstOrDefault(x => x != null); if (client != null) { return(client); } if (_explicitlyDisconnected.Contains(endpoint)) { return(null); } client = new MxClient( this, _mxClientGroups[MxClientGroup.Ungrouped], endpoint, _udpClient); _mxClientGroups[MxClientGroup.Ungrouped].RealtimeClients.Add(client); RegisterForEvents(client); var reliability = new MxReliability(client); _mxClientGroups[MxClientGroup.Ungrouped].ReliableClients.Add(reliability); RegisterForEvents(reliability); } OnClientConnected(client); return(client); }
/// <summary> /// Unregister from a reliability's events. /// </summary> /// <param name="reliability"> /// The reliability. /// </param> private void UnregisterFromEvents(MxReliability reliability) { reliability.MessageAcknowledged -= OnReliabilityMessageAcknowledged; reliability.MessageAcknowledged -= OnReliabilityMessageReceived; reliability.FragmentReceived -= OnReliabilityFragmentReceived; reliability.FragmentSent -= OnReliabilityFragmentSent; }
/// <summary> /// Register for a reliability's events. /// </summary> /// <param name="reliability"> /// The reliability. /// </param> private void RegisterForEvents(MxReliability reliability) { reliability.MessageAcknowledged += OnReliabilityMessageAcknowledged; reliability.MessageReceived += OnReliabilityMessageReceived; reliability.FragmentReceived += OnReliabilityFragmentReceived; reliability.FragmentSent += OnReliabilityFragmentSent; }
private MxClient ThreadSafeGetOrCreateClient(IPEndPoint endpoint) { MxClient client; lock (_mxClientGroupLock) { client = _mxClientGroups .Select(x => x.Value.RealtimeClients.FirstOrDefault(y => y.Endpoint.ToString() == endpoint.ToString())) .FirstOrDefault(x => x != null); if (client != null) { return client; } if (_explicitlyDisconnected.Contains(endpoint)) { return null; } client = new MxClient( this, _mxClientGroups[MxClientGroup.Ungrouped], endpoint, _udpClient); _mxClientGroups[MxClientGroup.Ungrouped].RealtimeClients.Add(client); RegisterForEvents(client); var reliability = new MxReliability(client); _mxClientGroups[MxClientGroup.Ungrouped].ReliableClients.Add(reliability); RegisterForEvents(reliability); } OnClientConnected(client); return client; }