小编Eu *_*Chi的帖子

带有 Django 通道的 Websocket 不起作用,连接失败

你好很棒的人!

我创建了一个聊天室django-channels。每次我在生产环境中尝试通过网络套接字连接到我的聊天室时,它都会失败。在本地它可以正常工作。

我在digitalocean上主持

点冻结:

channels==2.1.2
channels-redis==2.3.0
daphne==2.2.1
'''
Run Code Online (Sandbox Code Playgroud)

我已经安装了redis-server

sudo apt-get install redis-server
Run Code Online (Sandbox Code Playgroud)

这是我的设置。

INSTALLED_APPS = [
    # '''
   'channels',
    # '''
] 
CHANNEL_LAYERS = {
    'default': {
        'BACKEND': 'channels_redis.core.RedisChannelLayer',
        'CONFIG': {
            "hosts": [os.environ.get('REDIS_URL', 'redis://localhost:6379')],
        },
    },
}
ASGI_APPLICATION = "project_name.routing.application"
Run Code Online (Sandbox Code Playgroud)

这是我的asgi.py身边wsgi.py

import os
import django
from channels.routing import get_default_application

from django.core.wsgi import get_wsgi_application

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "project_name.settings")
django.setup()
application = get_default_application()
Run Code Online (Sandbox Code Playgroud)

这是我的 project_folder.rounting.py

application = ProtocolTypeRouter({
    'websocket':AllowedHostsOriginValidator(
        AuthMiddlewareStack(
            URLRouter([
                # my urls …
Run Code Online (Sandbox Code Playgroud)

django websocket redis django-channels daphne

6
推荐指数
1
解决办法
1万
查看次数

首先订购带有特定对象的Django查询集

我有一个显示在如下模板中的用户列表。

{% for u in users_list %}

    {{u.name}}

{% endif %}
Run Code Online (Sandbox Code Playgroud)

是否可以将两个或多个用户排在顶部?

例如,对于一个用户,当当前用户访问该列表时,可以在将变量发送到模板之前排除我,从而在没有特定顺序情况下将他排名在顶部。

1) me
2) user2
3) user3
Run Code Online (Sandbox Code Playgroud)

django django-models django-queryset

4
推荐指数
1
解决办法
454
查看次数