Centrifugo(八)连接检查

    当客户端使用适当的凭据连接到 Centrifugo 后,连接是一直存在的,哪怕你在应用程序中禁止了该用户,他也能从他已订阅的频道中读取消息。在有些时候,这不是我们想要的。因此,我们需要连接检查机制。

    Centrifugo 有一个选项 connection_lifetime。其默认值为 0,此时,连接检查机制处于关闭状态。当该选项设置的数值大于 0 时,连接检查机制开启,并且这个数值表示成功连接后,连接保持的时长(以秒为单位)。例如,将 connection_lifetime 设置为 60,表示连接保持时长为 60 秒。当连接时长到期时,Javascript 浏览器客户端将向应用程序后端发送 AJAX POST 请求。默认情况下,此请求发送到 URL /centrifuge/refresh。你可以使用 Javascript 客户端配置选项 refreshEndpoint 进行更改。应用服务器需要返回带有连接凭据的 JSON 作为响应。返回相应示例(Python):

    to_return = {
        'user': "USER ID",
        'timestamp': "CURRENT TIMESTAMP AS INTEGER",
        'info': "ADDITIONAL CONNECTION INFO",
        'token': "TOKEN BASED ON PARAMS ABOVE",
    }
    return json.dumps(to_return)

    你在响应中返回的连接凭据必须与页面初始化时的凭据一致,其中 timestamp 要使用当前的时间戳。然后,Javascript 客户端会将凭据发送到 Centrifugo 服务器,并刷新连接时长。

    如果你不想保持该连接,应用程序后端只需要向 AJAX POST 请求返回 403 响应即可。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容