2017-08-05 3 views
6

私はリアルタイムゲームをしたい、NodeJS-SocketIOまたはaiohttpを使いたかった。私がdjango-channelsに出会うまで、私はそのドキュメントを読んだ。django-channelsはリアルタイムゲームに適していますか?

これは

質問良いモジュールです:

  1. は、リアルタイムのゲームに適したジャンゴ・チャンネルですか?
  2. django-channelsはaiohttp/nodejs-socketioよりも利点がありますか?
  3. すべてのクライアント(Android、IOS、デスクトップ)に適していますか?

答えて

2

まず、チャネルは非同期タスクキューに過ぎません。セロリに非常によく似ていますが、パフォーマンスに大きな違いがあります。&信頼性。 チャネルはセロリより高速ですが、セロリはより信頼性があります。コンテクストを追加するために、チャンネルはタスクを1回だけ実行します(失敗したかどうかにかかわらず)。一方、セロリは、タスクが一定の時間失敗するか、成功するまでタスクを実行します。

今、あなたの質問&に来てください。

あなたはチャンネル& ウェブソケットを使用して氏族の衝突を構築することであったとします。

1)はい、チャンネルは限り、あなたは非同期キュー内のタスクが失敗した状況のためのカスタムロジックを記述するとリアルタイムのゲームに適しています。

ウェブソケットは、&のメッセージをチャネル経由で送信します。だから、戦場に軍隊を配備しようとするプレイヤーの要求の1つがサーバーに正常に送られなかった場合は、このような状況に対処するためのカスタムロジックを書く必要があります(3回以上要求を試してからタスクキュー)。

2)実際にはありません。彼らはほとんど同じです。最終的には、メッセージを同時に発信/受信できるWebソケット&キューを使用する必要があります。

3)はい、バックエンドからチャネル経由でメッセージを送受信するアプリケーション(アンドロイド、iOS、デスクトップ)にWebソケットを実装する必要があります。

関連する問題