0

ベースコントローラー、ベースhtml、ベースjavascriptファイルを備えたアプリケーションがあります。この3つでは、一意のクライアントID(create_channel)でトークンを作成し、トークンをテンプレートに渡して、javascriptファイルに接続を作成します。

次に、この接続にメッセージを送信します。同じページにとどまるとうまく機能し、メッセージが表示されますが、他のページに移動すると、base.jsが再度読み込まれ、新しい接続が開始されるため、サーバーから送信したメッセージが表示されません。

この問題を解決するにはどうすればよいですか?接続を1つだけ作成したいのですが、ベースファイルの読み込み回数が増えています...

4

1 に答える 1

0

各「ユーザー」はIDを持っている必要があります。セッションIDを使用します。次に、トークンがまだ存在しない場合にのみ、それに対してトークンを作成します。

channel_token = self.session.get('channel_token')
    if channel_token is None: # if the session user does not have a channel token
        user_id = str(uuid.uuid4()).replace("-",'')
        channel_token = channel.create_channel(user_id)
        self.session['channel_token'] = channel_token
        self.session['user_id'] = user_id

したがって、別のページに移動しても、そのuser_Idで既に使用可能なチャネルがある場合は、新しいチャネルを作成しません。ユーザーが離れて移動すると、毎回切断/接続が発生します。また、を使用しuser_idて、どのページにいるかに関係なくメッセージを送信できます。

于 2012-11-23T15:07:15.710 に答える