【问题标题】:django channels does not work with more than 20-40 users in one channeldjango 频道不适用于一个频道中超过 20-40 个用户
【发布时间】:2021-08-22 10:10:44
【问题描述】:

我的系统:django == 1.11.22,cchannels == 2.1.7,channels-redis == 2.2.1,daphne == 2.2.0,asgiref == 2.3.2

我尝试使用 django 管道在我的项目中包含 websocket。 Web 套接字子系统只是将系统状态发送给管理员并允许交换消息。我的频道层设置:

CHANNEL_LAYERS = {
    'default': {
        'BACKEND': 'channels_redis.core.RedisChannelLayer',
        # 'BACKEND': 'channels.layers.InMemoryChannelLayer',
        'CONFIG': {
            "hosts": [(DJANGO_REDIS_HOST, DJANGO_REDIS_PORT)],
            "capacity": 100000,  # default 100
            "expiry": 5  # default 60
        },
    },
}

我已将频道容量增加到 100000 条消息,但是在连接到同一 URL“/ws/admins/”(这是一组“管理员”)的 20-40 次连接后,我开始出现断开连接和重复消息,并且 prod 服务器上的 django 将停止获取所有连接,直到重新启动 docker 容器。减少到期也无济于事。 如果我使用 InMemoryChannelLayer 则没有错误。服务器通过命令启动:daphne -b 0.0.0.0 -p 8000 web_server.asgi: application

【问题讨论】:

    标签: django websocket django-channels daphne


    【解决方案1】:

    我将项目更新为 Django==2.2.24、channels==2.4.0、channels-redis==3.2.0、daphne==2.5.0、asgiref==3.3.4,问题已解决。

    【讨论】:

      猜你喜欢
      • 2022-11-10
      • 2022-01-03
      • 1970-01-01
      • 2022-12-15
      • 2023-03-27
      • 2020-06-23
      • 1970-01-01
      • 1970-01-01
      • 2016-09-26
      相关资源
      最近更新 更多