2011-03-24 150 views
2

移動應用推送通知允許用戶體驗方面的一些很酷的可能性。是否有類似的服務可用於桌面應用程序,例如用Java或C#編寫的應用程序?桌面應用推送通知?

我的目標是讓程序根據來自服務器的通知採取操作。如果推送通知不可用,我可以做些什麼解決方法?讓程序將自己安排爲任務(或者是定時任務,或者定時任務,或者是W/E),然後檢查服務器是否有更新?隨時保持程序在後臺運行不會是一種選擇,因爲更新過於頻繁。

回答

4

如果您想要推送通知,除了讓進程始終運行以外,您沒有太多選擇,因爲服務器需要聯繫您的應用程序的方式。

使用推送通知,例如,您可以與帶有套接字的服務器建立永久連接。當有更新時,服務器會通知你的應用程序,並且你做任何需要做的事情。

但是,如果您的更新不經常發生,拉動解決方案可能是一個更好的主意,因爲它不需要永久連接。

因爲你的程序並不需要打開所有的時間,

(有節目表本身作爲一個 任務(無論是cron作業,或計劃 任務,或W/E) ,然後檢查更新服務器 ?保持在任何時候都 在後臺運行,會不會是一種選擇方案 ,因爲更新 會太罕見。)

你可能只是WA nt與服務器進行檢查,以瞭解在應用程序啓動時是否有更新(取決於您的需要,很難僅通過問題的詳細信息來告知)。

如果需要,您也可以在後臺線程中添加輪詢服務器,以便以固定的時間間隔(適合您的需求的時間間隔)檢查更新。

+0

謝謝。在我的使用案例中,程序不會定期打開 - 它需要能夠在用戶沒有運行的情況下對新數據做出反應。 – 2011-03-25 16:06:33

+0

爲了能夠在用戶不運行它的情況下對新數據做出反應,您需要有一個服務或某種在後臺運行的進程。一個程序不能運行並在沒有運行時執行某些操作......計劃任務可以檢查是否有新數據,然後啓動應用程序。沒有上下文或任何你想做的事情,我都無法幫到你。 – Martin 2011-03-25 17:42:38

+0

你能分享一個在桌面應用程序中使用套接字來保持連接打開的例子嗎? – Nitesh 2017-01-06 12:25:59

0

您可以使用推送/訂閱服務,如Pusher(或自行實施)。

使用Pusher,您可以擁有一個應用程序,服務器或任何推送事件並讓客戶端訂閱Pusher以獲取特定事件類型的事件,然後當事件發生時通知客戶端。