の数を減らし、このような何か:ライブ(ロングポーリング)nginxの(またはApache)を介してジャンゴへの接続、 - 私はテーブルを持っているクエリ
class last10msg(models.Model):
user = models.ForeignKey(User)
date = models.DateField()
msg = models.CharField(max_length=254)
私はクライアント側でテーブルを更新し、長いポーリングを作成したいですDBからテーブル内の最後の10行を持つ側。
最初に、このようなものだった:
ユーザが別の要求を送信table.server応答と、変更または同じdata.thenユーザとJSコード更新テーブルの最後の10行のためのAJAXリクエストを送信します。
私は、データが新しいサーバーであるかどうかをチェックします(最新の日付とクエリの最新の日付をajaxリクエストで送信したものを比較してください)。 ...ユーザーが別の要求を送信します。最後に
:
私はグローバル実行中の関数へのすべての要求を送信することができると思うと、この関数は、最後のチェックからすべての行を取得し、(ユーザーのフィールドを持つクライアントとからrequest.userから送信された日付と日付を比較)新しく追加された場合関連したビューへの応答を返し、接続なしで応答を表示する(おそらく、クエリーの最後の日付を、次のクエリーでのチェックインのためのユーザー送信日で置き換え、クライアントが最後の日付を明らかに送信するのを待たずに)ユーザーがログアウトしたり、ブラウザを閉じたりしたときに、
しかし、私は本当にこれを実装する方法を知りません。
EDIT 1:
私はこのHTTP_Push_Moduleを見つけましたが、Djangoのための例はないと私の目的のためにグローバルな機能をどのように実装する
EDIT 2:
私はそれが優れていると思いますこの質問の小さな部分を作る。
質問1:link:
がどのようにこのようなものを作成するには?しかし、phpの代わりにDjangoを使用してください。
github.com/slact/nginx_http_push_module/blob/master/tests/test.py
上記では、純粋なのpythonと小さい例である。(私はそれを理解できない)
質問2 : ログインしたユーザーの一覧を取得し、ロングポーリングを行ってログインした各ユーザーに関連する最後の更新された行を返すグローバル関数を作成する方法。あなたの応答を追跡するために少し大変でした(私は何かが欠けていますので、もし、あなたが年の言語を明確にしたい場合があります)が、: -
また、私が言及したTornadoキューステータスサーバーを含むプロジェクトは、github上にあります。https://github.com/fish2000/django-imagekit/blob/icc-develop/imagekit/queue/servers.py – fish2000
ありがとう返信用私は3リンクとより多くの情報と私のポストを編集 – hosein
@ fish2000。私はあなたの最後の段落を取得していない、詳細を教えてください(セッションごとの部分を設定してください)。私はDjango/Gunicorn-Tornado-Nginxのアーキテクチャ、どのように配置されているか、そしてメッセージが前後にどのように伝達されるかについてもっと説明していただければ幸いです。 – securecurve