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);
 }
Beispiel #2
0
        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));
        }