2017-08-05 85 views
6

我想做一個實時遊戲,我想使用NodeJS-SocketIO或aiohttp,直到遇到django頻道,然後我閱讀它的文檔。django頻道適合實時遊戲嗎?

這是一個很好的模塊

問題

  1. 是Django的渠道適合於實時的遊戲?
  2. django-channels比aiohttp/nodejs-socketio有優勢嗎?
  3. 是否適合所有客戶端(android,IOS,桌面)?

回答

2

首先,通道不過是一個異步任務隊列。這與芹菜非常相似,主要區別在於性能&的可靠性。 渠道比芹菜快,但芹菜更可靠。爲了給它增加更多的上下文,通道只執行一次任務(不管它是失敗還是成功)。另一方面,芹菜執行任務,直到任務失敗一段時間或成功。

現在,來看看這個例子中的問題&。

假設你要建造衝突使用渠道& 網絡插座部族的。

1)是的,渠道是適合於實時遊戲,只要你寫在哪裏異步隊列中的任務失敗的情況下,自定義邏輯。

網絡套接字將通過頻道發送&接收消息。因此,如果其中一名玩家在戰場上部署部隊的請求沒有成功發送到服務器,則需要編寫自定義邏輯來處理這種情況(例如,在將其拋出之前嘗試請求至少3次任務隊列)。

2)不是。他們幾乎是一樣的。最終,您將不得不使用網絡套接字&一個隊列,您可以同時觸發/接收消息。

3)是的,你必須在你的應用程序(android,iOS,桌面)中實現一個web-socket,它將通過通道從後端發送/接收消息。