构建应用程序后,WebSocket无法工作

时间:2019-01-04 10:25:40

标签: asp.net-core websocket

我已经拥有通过WebSockets进行通信的ASP.NET-Core 2.0应用程序。

应用A为服务器。 应用程序A在具有Ubuntu的远程服务器上运行。

应用B是客户端 应用程序B在我办公室的PC上运行。

当我在Debug中本地测试应用程序时,一切正常。客户端连接到服务器,他们可以交换信息。

但是,当我构建服务器应用程序时,客户端可以连接到它,但是当服务器尝试向客户端发送消息时,客户端不会收到该消息。

public async Task<RecievedResult> RecieveAsync(CancellationToken cancellationToken)
    {
        RecievedResult endResult;
        var buffer = new byte[Connection.ReceiveChunkSize];
        WebSocketReceiveResult result;
        MemoryStream memoryStream = new MemoryStream();
        do
        {
            if (cancellationToken.IsCancellationRequested)
            {
                throw new TaskCanceledException();
            }
            Console.WriteLine("Server Invoke");
            // result never finishes when application is build. On debug it finishes and method returns the correct result
            result = await _webSocket.ReceiveAsync(new ArraySegment<byte>(buffer), cancellationToken);

            if (result.MessageType == WebSocketMessageType.Close)
            {
                await CloseAsync(cancellationToken);
                endResult = new RecievedResult(null, true);
                return endResult;
            }
            memoryStream.Write(buffer, 0, result.Count);
        } while (!result.EndOfMessage);
        endResult = new RecievedResult(memoryStream, false);
        return endResult;
    }

这是所有挂起的代码部分。 我尝试过的是:

Build Server - Build Client => not working 
Build Server - Debug Client => not working 
Debug Server - Debug Client => working

我需要任何建议,在这里以及在哪里寻找问题可能出什么问题。 如果没有错误,请控制台。一切都挂起了:

 result = await _webSocket.ReceiveAsync(new ArraySegment<byte>(buffer), cancellationToken);

0 个答案:

没有答案