如何解决WebSocketSharp C# StreamReader?
我有一个问题,我想知道如何使用 StreamReader 读取 WebSocket 响应?
//WebSocket
WebSocket ws = new WebSocket("wss://stream.binance.com:9443/api/v3/userDataStream");
ws.Connect();
这样做:https://github.com/binance/binance-spot-api-docs/blob/master/user-data-stream.md#create-a-listenkey
我先谢谢你
解决方法
我找到了一些示例,可以从带有 WebSocket
的 StreamReader
接收数据。
public async Task<string> Receive()
{
byte[] buffer = new byte[1024];
WebSocketReceiveResult result = await client.ReceiveAsync(new ArraySegment<byte>(buffer),CancellationToken.None);//ToDo built in CancellationToken
if (result.MessageType == WebSocketMessageType.Close)
{
return "abort";
}
using (MemoryStream stream = new MemoryStream())
{
stream.Write(buffer,result.Count);
while(!result.EndOfMessage)
{
result = await client.ReceiveAsync(new ArraySegment<byte>(buffer),CancellationToken.None);//ToDo built in CancellationToken
stream.Write(buffer,result.Count);
}
stream.Seek(0,SeekOrigin.Begin);
using (StreamReader reader = new StreamReader(stream,Encoding.UTF8))
{
string message = reader.ReadToEnd();
return message;
}
}
}
这是此代码示例的网站链接:https://mycsharp.de/forum/threads/122437/websocket-client-beispiel
还有一个从 websocket 读写的例子: https://thecodegarden.net/websocket-client-dotnet
我希望这可以帮助您解决问题。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。