MessageWebSocket何时接收数据?

时间:2016-09-16 08:10:05

标签: events websocket uwp

信息:尽管使用了pid标记,我在代码中使用WebSocket,因为我在UWP上编码。

MessageWebSocket有一个名为MessageWebSocket的事件。我在初始化MessageReceived

时为此事件添加了TypedEventHandler
MessageWebSocket

使用名为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); } } 何时接收数据?

1 个答案:

答案 0 :(得分:0)

我能够弄清楚问题是什么。服务器期望得到一个文本,而不是我发送数据到服务器。这就是发送文本的解决方案的样子:

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;