你好很棒的人!
我创建了一个聊天室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) 我有一个显示在如下模板中的用户列表。
{% 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)