【发布时间】: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