2013-10-02 24 views
1

我們是一個小團隊,開始計劃如何使用Pusher在Django中實時推送消息來開發聊天服務。Django應用程序使用Pusher的龍捲風有哪些優勢(或需求)?

到目前爲止,我們知道我們需要一種將消息推送到Android和Web瀏覽器客戶端的異步方式,並且我們選擇了託管解決方案(Pusher),而不是實施我們自己的解決方案,可能使用sockjs和龍捲風。我們認爲我們現在並不需要龍捲風,因爲我們有推杆!

在Python模塊文檔(https://github.com/pusher/pusher_client_python)中只提到Django,但是有一個Tornado節說:「使用Tornado Web服務器觸發事件​​...」。所以我們想知道爲什麼我們需要或者使用Tornado來觸發事件從我們的服務器到Pusher。

在此先感謝。

回答

1

我可以想象的唯一情況是,當你需要一次觸發多個消息,那麼龍捲風是異步的,然後django(或任何其他同步Web框架)顯然更有利,因爲後者將不得不觸發消息並等待每次都有迴應。

+0

我想是這樣,但是當我們的應用服務器觸發消息來推送推送者期望的響應是應該給予我們服務器的「確定,接收」,對於每條消息,沒有任何延遲。我的意思是:當客戶端在聊天中等待新消息時,我可以看到擁有異步系統和推送消息的方式,以便在沒有響應傳遞時阻止服務器。但是當你期待和對方的即時迴應時,我看不到需要!你認爲龍捲風在這種情況下可以表現得更好嗎?提前感謝! – diegopau

+0

現在好好考慮一下(並感謝您的回答),很明顯,任何時候您拉到外部服務時都需要延遲,並且在推送者向我們發送響應時處理其他請求會更有效率爲他們每個人。 – diegopau

0

鏈接的文件意味着如果您同時使用Pusher和Tornado,則應該進行這種額外的配置,以使Pusher與Tornado的非阻塞模型很好地協同工作。使用同步併發的框架不需要額外的工作,因此不需要在文檔中明確提及。您可以繼續使用Tornado或Django(或Flask等),具體取決於您的偏好和應用程序的需求。