public LocalTcpDataChannel(ILogger log, LocalDataChannelMetrics metrics, string instance, TcpClient endpoint) { _log = log.ForContext(GetType()); _metrics = metrics; _endpoint = endpoint; _instance = instance; _stream = _endpoint.GetStream(); _buffer = new byte[BufferSize]; _log.Debug("Local: {localInstance} is initialized", _instance); }
public async Task <LocalDataChannel> Create(ILogger logger, LocalDataChannelMetrics metrics, ConnectionId connectionId) { var tcpClient = new TcpClient(AddressFamily.InterNetwork) { LingerState = { Enabled = true }, NoDelay = true }; _log.Verbose("Connecting {host}:{port}", _host, _port); await tcpClient.ConnectAsync(_host, _port); _log.Debug("Connected {host}:{port}", _host, _port); return(new LocalTcpDataChannel(logger, metrics.Merge(_tags), connectionId.ToString(), tcpClient)); }