我有一个带有基本控制器,基本html和基本javascript文件的应用程序。在这三个中创建一个具有唯一客户端ID(create_channel)的令牌,然后将令牌传递给模板并在javascript文件中创建连接。
然后我向此连接发送消息。如果我保持在同一页面它运行良好,我看到了消息,但如果我转到其他页面,base.js再次加载并启动新连接,所以我从来没有看到我从服务器发送的消息。
知道如何解决此问题?我只想创建一个连接,但基本文件加载次数超过......
答案 0 :(得分: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
发送消息,无论他们在哪个页面上。