vmo*_*eco 2 django django-channels django-channels-presence
是否可以使用django-channels访问添加到组中的频道列表?
def consumer(message):
Group("group_name").add(message.reply_channel)
channel_list = Group("group_name").???
Run Code Online (Sandbox Code Playgroud)
编辑:
我试图实现的目标是访问所有通道的会话,例如已连接用户的列表。
到目前为止,我使用列出连接的基于数据库的系统。但是,如果服务器在不执行ws_disconnect使用者的情况下关闭,则这些连接对象将保留在数据库中,而我不希望这样做。
编辑2:
要列出连接的用户,我发现django-channels-presence。我会测试。
是的,那是可能的。容易破解的是...
# Get channel_layer function
from channels.asgi import get_channel_layer
# passing group_channel takes channel name
channel_layer = get_channel_layer()
ch_group_list = channel_layer.group_channels('<your group name>')
Run Code Online (Sandbox Code Playgroud)
我已经测试过,并且通过创建 a (处理管理/创建、添加/删除...)django-channels-presence轻松成功地列出了 a 的连接用户,并且提供了一种允许我实现我正在寻找的内容的方法。GroupRoomGroupchannelget_users()
它还提供了一种方法来清理在服务器崩溃时不会删除的添加通道(这不会触发用于从组中删除这些通道的 ws_disconnect 使用者)。它提供了清理过期通道的任务prune_presence。prune_room
| 归档时间: |
|
| 查看次数: |
3039 次 |
| 最近记录: |