Esempio n. 1
0
        public async Task <WebSocketReceiveResult> ReceiveMessages(WebSocket webSocket)
        {
            // get authorized user only once before starting loop
            var authorizedUser = await _authorizedUserHelper.GetAuthorizedUserAsync();

            var socketMessage = await _socketStream.ReceiveAsync(webSocket);

            while (!socketMessage.Result.CloseStatus.HasValue)
            {
                var processingResult = await ProcessSocketMessage(socketMessage, authorizedUser);

                // send processing result back to the User
                await _socketStream.SendObjectAsync(webSocket, processingResult);

                // receive/wait for next message
                socketMessage = await _socketStream.ReceiveAsync(webSocket);
            }

            return(socketMessage.Result);
        }