in src/Azure.AppService.Tunnel/Tunnel/WebSockets/WebSocketConnection.cs [111:127]
private async Task<IIncomingMessage> ReceiveMessage(byte[] receiveBuffer)
{
var segment = new ArraySegment<byte>(receiveBuffer);
var receiveResult = await _webSocket.ReceiveAsync(segment, _lifetime);
if (receiveResult.MessageType == WebSocketMessageType.Close)
{
return CloseIncomingMessage.Instance;
}
if (receiveResult.EndOfMessage)
{
return CreateMessage(receiveResult.MessageType, segment.Array.Take(receiveResult.Count).ToArray());
}
return await ReadRemainingMessage(receiveResult, receiveBuffer);
}