protected internal void AddClient(ISenderConnection client) { if (Clients is null) { Clients = new List <IMessageSender>(); } var messageSender = new MessageSender.MessageSender(client); messageSender.OnDisconnected -= MessageSender_OnDisconnected; messageSender.OnDisconnected += MessageSender_OnDisconnected; messageSender.OnRead -= MessageSender_OnRead; messageSender.OnRead += MessageSender_OnRead; Clients.Add(messageSender); WaitMessage(messageSender); OnClientConnection?.Invoke(this, messageSender); }
private void DisposeClient() { if (_connection is null) { return; } if (_cancellationTokenSource != null && _cancellationTokenSource.Token.CanBeCanceled) { _cancellationTokenSource.Cancel(); } _streamReader?.Close(); _streamReader?.Dispose(); _streamReader = null; _streamWriter?.Close(); _streamWriter?.Dispose(); _streamWriter = null; _connection?.Dispose(); _connection = null; }
public MessageSender(ISenderConnection connection) { _connection = connection; }