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);
}
}
何时接收数据?
答案 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;