我遵循Django Websockets教程创建了一个聊天室网站。它没有工作,所以我仔细检查了代码,我做的一切都和教程中一样。我决定克隆仓库并检查我的代码有什么问题。我意识到websockets也不能与下载的项目一起工作。是我的密码或电脑有问题吗?
链接到网络:https://www.youtube.com/watch?v=jsxFEONN_yo
链接到repo:https://github.com/veryacademy/YT-Django-Project-Chatroom-Getting-Started.git
我创建了一个虚拟环境,安装了django和channels。我所做的唯一更改是在settings.py文件中,
CHANNEL_LAYERS = {
'default': {
'BACKEND': 'channels_redis.core.RedisChannelLayer',
'CONFIG': {
"hosts": [os.environ['REDIS_URL']],
},
},
}
CACHES = {
"default": {
"BACKEND": "django_redis.cache.RedisCache",
"LOCATION": os.environ['REDIS_URL'],
"OPTIONS": {
"CLIENT_CLASS": "django_redis.client.DefaultClient"
}
}
}
有:
CHANNEL_LAYERS = {
"default": {
"BACKEND": "channels.layers.InMemoryChannelLayer"
}
}
1条答案
按热度按时间bnlyeluc1#
你需要Redis请检查下面的文件。
https://channels.readthedocs.io/en/latest/topics/channel_layers.html
存储器内沟道层作为单独的层与每个过程一起操作。这意味着跨进程消息传递是不可能的。由于通道层的核心价值是提供分布式消息传递,因此内存中的使用将导致次优性能,并最终导致多示例环境中的数据丢失。
这意味着你不能使用内存来跨进程传递消息,我猜你正在学习教程!