Django Websockets的问题

lvjbypge  于 2023-10-21  发布在  Go
关注(0)|答案(1)|浏览(170)

我遵循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"
    }
}
bnlyeluc

bnlyeluc1#

你需要Redis请检查下面的文件。
https://channels.readthedocs.io/en/latest/topics/channel_layers.html
存储器内沟道层作为单独的层与每个过程一起操作。这意味着跨进程消息传递是不可能的。由于通道层的核心价值是提供分布式消息传递,因此内存中的使用将导致次优性能,并最终导致多示例环境中的数据丢失。
这意味着你不能使用内存来跨进程传递消息,我猜你正在学习教程!

相关问题