GAE channel api

GAE channel api

本文关键字:api channel GAE      更新时间:2023-09-26

我正在构建一个聊天应用程序与通道api (java后端- javascript前端)。每次用户获得用户名时,它都会在剩余用户屏幕中列出。新用户将从通道发送给每个用户,并将显示出来。但我想从列表中删除用户,如果他们关闭窗口。我实际上想知道如何识别如果用户关闭他的窗口或不与通道api?

通道API不需要直接这样做;在JavaScript中,您可以使用onunload来确定用户何时从页面导航,然后像往常一样触发通道API。然而,不能保证它会被调用(想想如果我只是硬关闭我的机器会发生什么)。您可以使用JavaScript提供心跳并在服务器上实现逻辑,以表示"如果我在X秒/分钟/其他时间内没有收到客户端的任何消息,则认为此用户的会话已关闭"。

我在python上做同样的事情。您所需要做的就是启用状态入站服务,然后当客户端断开连接时,您将在/_ah/channel/disconnected/上接收请求。从请求参数中,您可以确定客户端是谁,并将其从应用程序的用户列表(如果存在)中删除,并且(如果有必要)向剩余的客户端发送通道消息,以将其从

上看到的列表中删除。