AngleSharp.Io.Dom.WebSocket.ListenAsync C# (CSharp) Method

ListenAsync() private method

private ListenAsync ( ) : Task
return Task
        private async Task ListenAsync()
        {
            var buffer = new Byte[ReceiveChunkSize];
            var stringResult = new StringBuilder();

            try
            {
                while (_ws.State == WebSocketState.Open)
                {
                    var segment = new ArraySegment<Byte>(buffer);
                    var result = await _ws.ReceiveAsync(segment, _cts.Token).ConfigureAwait(false);

                    if (result.MessageType == WebSocketMessageType.Close)
                    {
                        await CloseAsync().ConfigureAwait(false);
                        break;
                    }

                    stringResult.Append(Encoding.UTF8.GetString(buffer, 0, result.Count));

                    if (result.EndOfMessage)
                    {
                        OnMessage(stringResult.ToString());
                        stringResult.Clear();
                    }
                }
            }
            catch (Exception ex)
            {
                OnError(ex);
                CancelListener();
                OnDisconnected();
            }
        }