我通过websocket接收JSON.至少:我是部分的.使用在线websocket服务,我收到完整的JSON响应(忽略所有HTML标记).当我查看我在控制台中收到的JSON时,我可以看到HTML标记(在调试期间使用HTML查看器查看它删除了HTML)但它突然结束(不完整的数据).
我的缓冲区有足够的空间,我正在使用async-await(假设)在继续之前等待整个响应进来.
private async Task Receive()
{
var buffer = new byte[4096 * 20];
while (_socket.State == WebSocketState.Open)
{
var response = await _socket.ReceiveAsync(new ArraySegment<byte>(buffer), CancellationToken.None);
if (response.MessageType == WebSocketMessageType.Close)
{
await
_socket.CloseAsync(WebSocketCloseStatus.NormalClosure, "Close response received",
CancellationToken.None);
}
else
{
var result = Encoding.UTF8.GetString(buffer);
var a = buffer[1000];
var b = buffer[10000];
var c = buffer[50000];
var d = buffer[81000];
Console.WriteLine(result);
var responseObject = JsonConvert.DeserializeObject<Response>(result, _requestParameters.ResponseDataType);
OnSocketReceive.Invoke(this, new SocketEventArgs {Response = responseObject });
buffer = new byte[4096 * 20];
} …Run Code Online (Sandbox Code Playgroud)