Ejemplo n.º 1
0
        private async Task <Stream> ConnectToServer()
        {
            var connectionInfo = await _commands.GetTcpInfoAsync();

            var uri = new Uri(connectionInfo.Url);
            await _tcpClient.ConnectAsync(uri.Host, uri.Port);

            _tcpClient.NoDelay           = true;
            _tcpClient.SendBufferSize    = 32 * 1024;
            _tcpClient.ReceiveBufferSize = 4096;
            _networkStream = _tcpClient.GetStream();

            var ms = new MemoryStream();

            RavenJObject.FromObject(new TcpConnectionHeaderMessage
            {
                Operation    = TcpConnectionHeaderMessage.OperationTypes.Subscription,
                DatabaseName = MultiDatabase.GetDatabaseName(_commands.Url)
            }).WriteTo(ms);

            RavenJObject.FromObject(_options).WriteTo(ms);
            ArraySegment <byte> bytes;

            ms.TryGetBuffer(out bytes);

            await _networkStream.WriteAsync(bytes.Array, bytes.Offset, bytes.Count);

            await _networkStream.FlushAsync();

            return(_networkStream);
        }
Ejemplo n.º 2
0
        private async Task <Stream> ConnectToServer(AsyncServerClient asyncServerClient)
        {
            var connectionInfo = await asyncServerClient.GetTcpInfoAsync().ConfigureAwait(false);

            var uri = new Uri(connectionInfo.Url);
            await _tcpClient.ConnectAsync(uri.Host, uri.Port).ConfigureAwait(false);

            _tcpClient.NoDelay           = true;
            _tcpClient.SendBufferSize    = 32 * 1024;
            _tcpClient.ReceiveBufferSize = 4096;
            var networkStream = _tcpClient.GetStream();

            return(networkStream);
        }