【问题标题】:UWP C# StreamSocket TCP Sending Heartbeat Message To Monitor DevicesUWP C# StreamSocket TCP 发送心跳消息到监控设备
【发布时间】:2019-03-23 06:18:35
【问题描述】:

是否有任何常见的实践技术来发送心跳消息来监控客户端设备?

我目前正在做的是设置一个任务计时器并以一秒的间隔轮询每个客户端设备,并等待客户端设备的确认,然后再增加计数器以轮询第二个设备。

如果没有来自设备的确认,我将再次尝试最多 3 次。

这是一个好习惯吗?

请指教。

谢谢。

【问题讨论】:

    标签: c# uwp client-server windows-10-iot-core


    【解决方案1】:

    TCP 在通过 IP 网络通信的主机上运行的应用程序之间提供可靠、有序且经过错误检查的八位字节流传输。不需要可靠数据流服务的应用程序可以使用用户数据报协议 (UDP),该协议提供无连接数据报服务,强调减少延迟而不是可靠性。参考:“wiki”。

    一般来说,如果您的服务器和客户端工作在:

    • 有线网络而不是无线网络
    • 它们都没有崩溃

    无需实现心跳。

    虽然心跳/PING/keep-alive 是绝对的或唯一的检查连接的方法。但是如何实现心跳对您来说是一个好的实践或最佳实践,这取决于您的用例,例如,心跳对您有效的频率是多少?客户端失去连接的可能原因。

    更多参考:

    Do I need to heartbeat to keep a TCP connection open?

    Keep Alive TCP/IP connected sockets over the Internet - when? how? and how much?

    TCP Dead link detection

    【讨论】:

    • 嗨@RitaHan-MSFT 谢谢。我需要发送心跳来检查客户端设备是否同时处于活动状态,以便从要更新的客户端设备中检索传感器数据。
    • @mylim 也许你可以直接获取传感器数据而不需要额外的心跳,或者当服务器无法从一个客户端接收时让客户端发送传感器数据然后检查这个客户端是否丢失连接.
    • 嗨@RitaHan-MSFT 如果多个客户端同时发送,处理传输会有问题吗?我的意思是基于让客户端发送传感器数据。
    • @mylim 如果您不明确同步所有客户端,则它们无法同时发送。您是否同意一个好的服务器应该具有可扩展性以同时处理多个客户端访问?
    猜你喜欢
    • 1970-01-01
    • 2022-01-14
    • 2019-10-13
    • 2018-11-05
    • 1970-01-01
    • 2019-03-05
    • 1970-01-01
    • 1970-01-01
    • 2021-12-18
    相关资源
    最近更新 更多