2014-10-28 70 views
1

我正在研究一個具有.NET桌面Winform應用程序和Web應用程序(基於REST API和基於HTML/JavaScript的系統UI),我想使用基於REST的託管服務之一(Firebase/Pusher/PubNub)在這些應用程序之間建立基於推送通知的通信,以便任何應用程序上的用戶(或外部系統)完成的任何更改應該立即通知其他應用程序。使用Firebase/Pusher/Pubnub在.Net桌面應用程序和Web應用程序之間來回推送通知

根據我的理解,上面提到的託管服務使用像WebSockets這樣的機制,它更適合基於瀏覽器的通信。因此需要了解是否可以使用這些基於REST的託管服務(Firebase/Pusher/PubNub)處理上述情況。

回答

6

Firebase,Pusher和PubNub都提供REST/Web API,允許您發佈事件/數據以及在某些情況下查詢狀態。所有這些服務還提供用於消費和發佈數據的實​​時API。

Firebase和Pusher嘗試使用WebSockets並回退到基於HTTP的解決方案。 PubNub使用純粹的基於HTTP的連接。雖然這些都是網絡技術,但它們並不依賴網絡瀏覽器。這些技術往往會在其他客戶端技術之前被提供並用於瀏覽器。例如,.NET 4.5有一個WebSocket class

因此,所有這些託管服務解決方案絕對適合您的場景

如果你決定,你不想使用託管服務,你可以看看SignalR這是一部分ASP.NET或XSockets這是一個堅實的.NET解決方案。更多信息請見Real-time Web Technology Guide

+0

感謝leggetter爲輸入。將嘗試這些。在參數(可用性,專業支持,學習曲線,生產穩定性和性能)方面的任何評論來選擇其中之一。 – SOUser 2014-10-28 10:05:05

+0

@Souser - 這三者都是專業和生產級平臺,擁有專門的支持渠道以及一個用戶社區。可用性 - 我會說Pusher是最容易使用的(儘管我曾經在那裏工作,所以我認爲我有偏見)。 PubNub作爲pubsub平臺也很容易使用,並且Firebase的學習曲線稍微更陡峭,因爲它是一個數據同步平臺。有關性能,請參閱這些[實時延遲統計信息](http://www.leggetter.co.uk/real-time-web-technologies-guide/realtime-hosted-service-latency)。在你的用例中,你應該在任何平臺上運行10分鐘。 – leggetter 2014-10-28 13:46:46

+0

嗨leggetter, 感謝您的幫助,我創建了兩個.Net控制檯應用程序(一個使用PusherServer,另一個使用PusherClient)。 看起來像我在客戶端應用程序丟失的東西,因爲雖然我能夠連接服務器和發送消息,但我無法接收客戶端應用程序中的消息 以下是客戶端和服務器示例代碼,請幫助我確定我的客戶代碼 – SOUser 2014-10-30 04:17:20