25

django でプッシュ システムを構築する必要があります。基本的にその機能は、サーバーからブラウザーにメッセージをプッシュすることです。

nodejsは使用できないので、websocketまたはorbitedを好みますが、これら2つをdjangoで実装する方法がわかりません。plsは私に方法をお勧めします、これは私を大いに助けます、thx。

4

7 に答える 7

13

1 つのオプションは、REST/Push API を備えた Django サーバーと並行して実行されている WebSocket サーバーを使用し、Django から WebSocket サーバーに HTTP/POST するだけでプッシュを実行し、接続されているすべての WebSocket クライアントにメッセージを配信することです。 .

そうすれば、既存の Django アプリに構造的/技術的な変更を加える必要はありませんが、スケーラブルで最新の WebSocket ベースのプッシュ機能を利用できます。

上記のホスティング サービスについては、http://pusher.comを参照してください。

自分で実行したい場合は、すぐに実行できる仮想アプライアンス (VMware、VirtualBox、Amazon EC2) として展開されているhttp://autobahn.wsをご覧ください。ここで REST/API の実例を見つけることができますhttps://github.com/tavendo/AutobahnPushPython

免責事項: 私は Autobahn Open-source の作成者であり、Autobahn.ws (Autobahn OSS に基づく商用サービス) を提供する Tavendo で働いています。

于 2012-06-07T10:25:33.600 に答える
11

Django はクライアントに「プッシュ」するのが苦手です。django が唯一の選択肢である場合、プッシュを模倣する唯一の方法はロングポーリングを使用することです。しかし、これは効率的ではありません。代わりに、Websocket はホットです。ここではトルネードとツイストが役に立ちます。あなたの質問に対するより完全な回答もありますhere .

于 2012-06-07T08:27:39.853 に答える
6

Redis をメッセージ キューとして使用してすぐに使用できる Websocket をサポートする Django モジュールがあります。こちらをご覧ください: https://github.com/jrief/django-websocket-redis

免責事項: 私はそのライブラリの作成者です。

于 2014-01-07T14:39:58.017 に答える
5

@hymloth が示唆するように、より良い方法は tornado または node.js を使用することです。

ただし、Django を使用する必要がある場合は、Django を使用した WebSocket の実装に関する記事を書いたので、役に立つかもしれません。

http://curella.org/blog/2012/jul/17/django-push-using-server-sent-events-and-websocket/

于 2012-07-18T16:15:55.550 に答える
1

ジャンゴオムニバス

内部で tornado を使用し、python 3 をサポートしています。

于 2015-03-31T16:24:06.253 に答える