MessageWebSocket何时接收数据?



信息:尽管使用WebSocket标签,我在我的代码中使用MessageWebSocket,因为我在UWP上编码。

MessageWebSocket存在MessageReceived事件。在初始化MessageWebSocket时,我向该事件添加了TypedEventHandler:

messageWebSocket.MessageReceived += new TypedEventHandler<MessageWebSocket, MessageWebSocketMessageReceivedEventArgs>(OnMessageRecieved);

在使用名为SendData()的方法发送数据之后,我期望MessageReceived事件被触发。但它不会,我不知道为什么。

这是我的SendData()方法:
private async void SendData(DataWriter dataWriter)
    {
        try
        {
            _evaLogger.Info("Trying to send data...");
            IBuffer buffer = dataWriter.DetachBuffer();
            await messageWebSocket.OutputStream.WriteAsync(buffer);
            _evaLogger.Info("Data was sent");
        }
        catch (Exception e)
        {
            _evaLogger.Error(e.Message, e);
        }
    }

如果没有发送数据,MessageWebSocket何时接收数据?

我知道问题出在哪里了。服务器期望得到一个文本,而不是我发送数据到服务器。下面是发送文本的解决方案:

private async Task SendData(DataWriter dataWriter)
    {
        try
        {
            _evaLogger.Info("Trying to send data...");
            await dataWriter.StoreAsync();
            _evaLogger.Info("Data was sent");
        }
        catch (Exception e)
        {
            _evaLogger.Error(e.Message, e);
        }
    }

将MessageType设置为Utf8:

也很重要
messageWebsocket.Control.MessageType = SocketMessageType.Utf8;

相关内容

  • 没有找到相关文章

最新更新