【问题标题】:Push notifications for desktop apps?桌面应用程序的推送通知?
【发布时间】:2011-07-22 13:40:16
【问题描述】:

移动应用的推送通知在用户体验方面提供了一些很酷的可能性。类似的服务是否可用于桌面应用程序,例如用 Java 或 C# 编写的应用程序?

我的目标是让程序根据来自服务器的通知采取行动。如果推送通知不可用,我可以采取哪些解决方法?将程序本身安排为任务(cron 作业、计划任务或 w/e),然后检查服务器是否有更新?让程序始终在后台运行不是一种选择,因为更新太少了。

【问题讨论】:

    标签: c# java desktop-application push-notification


    【解决方案1】:

    如果您想要推送通知,除了让进程始终运行之外,您别无选择,因为服务器需要一种方式来联系您的应用程序。

    使用推送通知,您可以通过套接字与服务器建立永久连接。当有更新时,服务器会通知您的应用程序,您可以做任何需要做的事情。

    但是,如果您的更新不频繁,则拉式解决方案可能是一个更好的主意,因为它不需要永久连接。

    由于您的程序不需要一直打开,

    (将节目安排本身作为 任务(一个 cron 作业,或计划的 任务或 w/e),然后检查服务器 更新?保留程序 一直在后台运行 不会是一个选择,因为更新 太少见了。)

    您可能只想在应用程序启动时检查服务器是否有可用更新(取决于您的需求,仅通过问题的详细信息很难判断)。

    如果您愿意,您还可以在后台线程中添加轮询服务器,该线程以固定的时间间隔检查更新(适合您需要的时间间隔)。

    【讨论】:

    • 谢谢。在我的用例中,该程序不会定期打开 - 它需要能够在用户不运行它的情况下对新数据做出反应。
    • 为了能够在用户不运行的情况下对新数据做出反应,您需要有一个服务或某种在后台运行的进程。程序不能在不运行时运行并做某事......计划任务可以检查是否有新数据然后启动您的应用程序。如果没有上下文或您想要做的任何示例,我无法为您提供更多帮助。
    • 你能分享一个在桌面应用程序中使用套接字保持连接打开的例子吗?
    • @Nitesh 自从我回答这个问题以来,软件开发发生了很大变化。我不会再推荐这个选项了。套接字是一种昂贵的资源,可以在您的服务器上为所有客户端保持打开状态。你最好定期轮询一个 url 或更好,使用像 Azure AWS 这样的云服务,它提供推送通知的技术。
    • 这取决于数据更新的频率、所需的响应时间等。Azure 通过 Windows 通用应用程序为桌面应用程序提供推送。 docs.microsoft.com/en-us/azure/app-service-mobile/…
    【解决方案2】:

    您可以只使用 Pusher 之类的推送/订阅服务(或自行实现)。

    使用 Pusher,您可以只拥有一个应用程序、服务器或任何推送事件的东西,并让客户端订阅 Pusher 以获取特定的事件类型,然后在事件发生时通知客户端。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-09
      • 2017-05-27
      • 2019-03-06
      • 1970-01-01
      • 2015-02-01
      • 2017-01-14
      相关资源
      最近更新 更多