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 响应即可。

你可能感兴趣的:(Centrifugo(八)连接检查)