0

我有一个带有基本控制器、基本 html 和基本 javascript 文件的应用程序。在这三个中创建一个具有唯一客户端 ID (create_channel) 的令牌,然后我将令牌传递给模板并在 javascript 文件中创建连接。

然后我向这个连接发送一条消息。如果我留在同一页面,它运行良好并且我看到了消息,但是如果我转到其他页面,base.js 将再次加载并启动新连接,所以我永远看不到我从服务器发送的消息。

知道如何解决这个问题吗?我只想创建一个连接,但基础文件加载更多次......

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 回答