ASP.Net:与 Android 客户的持续沟通渠道

ASP.Net: constant communication channel with Android clients

我是 运行 Azure 云中的 ASP.Net Web Forms 应用程序。现在我有一个我不知道如何解决的特殊要求:服务器必须接受来自 Android 客户端的传入连接,然后保持该连接打开(或待命)很长一段时间(天)。 所以在数小时甚至数天之后,服务器必须找到通往 Android 客户端的路径并向其发送一些数据。 我可以使用对双方都适用的任何技术,但是由于 Internet 介于两者之间,因此首选 http/https 作为协议(尽管具有 TCP 端点的 WCF 也可能在客户端启动连接时工作)。我唯一能想到的是让客户端不断轮询服务器是否有 command/data 可用,但该解决方案很丑陋并且浪费了大量资源。当服务器需要为它做某事时,客户端应该在几秒钟内做出反应,所以我必须使用大约 10 秒的轮询间隔。我知道 http "keep alive" 存在并且可以在 C# WebClients 中使用,但我怀疑它是否符合我的要求?还有其他可能吗?

根据 Niraj 的回复,我找到了 Google Firebase Cloud Messaging。之后,我阅读了 XMPP 协议和可用于 .Net 的 SignalR 技术,最终决定使用 SignalR,因为它的实现最简单,不需要第三方参与。