c#websockets-每隔X秒发送一次消息,同时等待在同一websocket中收到消息

时间:2018-10-08 11:48:48

标签: c# websocket

所有人!

我想每X秒发送一次绑定到时间轴的数据(所以它只是一个Dictionary <\ DateTime,MyData>)(没关系),而客户端不是说我要重新发送它,而是从不同的开始时间。

所以,这个场景有点像

Client : Please, start send me data which is > DateTime1
Server: Sure! Catch! 
Server: <DateTime1, Data1>, 
Server: <DateTime1.AddSeconds(1), Data2>, 
..., 
Server: <DateTime1.AddSeconds(X), DataX>

Client : Please, start send me data which is > DateTime2
Server : Sure! Catch! 
Server: <DateTime2, Data1>, 
Server: <DateTime2.AddSeconds(1), Data2>, 
..., 
Server: <DateTime2.AddSeconds(X), DataX>

我了解如何每隔X秒通过websocket发送数据,但是无法想象如何同时等待客户端的新指令。因此,任何文章/建议将不胜感激。

谢谢。

UPD:数据发送代码:

private async Task PushData(WebSocket webSocket, Dictionary<DateTime, List<Data>> dataPerSecond)
    {
        var dataPerSecondSerialized = JsonConvert.SerializeObject(dataPerSecond);
        var bytes = Encoding.UTF8.GetBytes(dataPerSecondSerialized);

        await webSocket.SendAsync(new ArraySegment<byte>(bytes, 0, bytes.Length), WebSocketMessageType.Text, true,
            CancellationToken.None);
    }

,此方法在while循环内调用,其后是Thread.Sleep()。

0 个答案:

没有答案