Django Channels 给我一个奇怪的错误
Posted
技术标签:
【中文标题】Django Channels 给我一个奇怪的错误【英文标题】:Django Channels throwing me a strange error 【发布时间】:2020-11-19 15:25:31 【问题描述】:我在使用 Django(通道)的套接字框架时遇到问题。我正在使用最新版本 3.0.2。我一直在我的几个项目中使用它,但现在我遇到了一个非常奇怪的、描述不正确的错误。在这里你可以看到我的全局路由配置:
application = ProtocolTypeRouter(
"websocket": AuthMiddlewareStack(
URLRouter(routing.urlpatterns),
),
)
以及本地应用路由配置:
urlpatterns = [path("signup/", consumers.SignUpWebsocketConsumer.as_asgi())]
消费者是一个完全默认的消费者实现:
class SignUpWebsocketConsumer(JsonWebsocketConsumer):
def connect(self):
self.accept()
def disconnect(self, close_code):
pass
我的应用加载完全正常:
HTTP/2 support enabled
HTTP/2 support enabled
Configuring endpoint tcp:port=8000:interface=127.0.0.1
Configuring endpoint tcp:port=8000:interface=127.0.0.1
Listening on TCP address 127.0.0.1:8000
Listening on TCP address 127.0.0.1:8000
当我的客户端尝试访问套接字时出现问题。 我收到此错误:
socket.gaierror: [Errno -3] Temporary failure in name resolution
我已经尝试克服这个问题大约 2 天,但仍然不知道是什么导致了这个问题。希望这里有人对此有所了解:)
【问题讨论】:
【参考方案1】:呵呵,这不是新版本的bug,只是我的错误。如果有人有同样的问题,请检查您的 settings.py 文件以获得良好的 redis 服务器 url。所以我的 redis url 配置不正确。
【讨论】:
以上是关于Django Channels 给我一个奇怪的错误的主要内容,如果未能解决你的问题,请参考以下文章
Django Channels 错误:失败:在建立连接之前关闭 WebSocket
Django Channels No module named 'asgiref.sync' 错误
Django Channels 2.4 和 Websockets 在 Elastic Beanstalk 和 ElastiCache 上给出 502 错误