我正在学习Django频道,我一直随机地得到这个错误:
[Failure instance: Traceback: <class 'ValueError'>: No route found for path 'socketcluster/'.
C:\Users\Alvaro\.virtualenvs\DjangoChannels-lIBZLoxz\lib\site-packages\autobahn\websocket\protocol.py:2839:processHandshake
C:\Users\Alvaro\.virtualenvs\DjangoChannels-lIBZLoxz\lib\site-packages\txaio\tx.py:366:as_future
C:\Users\Alvaro\.virtualenvs\DjangoChannels-lIBZLoxz\lib\site-packages\twisted\internet\defer.py:151:maybeDeferred
C:\Users\Alvaro\.virtualenvs\DjangoChannels-lIBZLoxz\lib\site-packages\daphne\ws_protocol.py:72:onConnect
--- <exception caught here> ---
C:\Users\Alvaro\.virtualenvs\DjangoChannels-lIBZLoxz\lib\site-packages\twisted\internet\defer.py:151:maybeDeferred
C:\Users\Alvaro\.virtualenvs\DjangoChannels-lIBZLoxz\lib\site-packages\daphne\server.py:200:create_application
C:\Users\Alvaro\.virtualenvs\DjangoChannels-lIBZLoxz\lib\site-packages\channels\staticfiles.py:41:__call__
C:\Users\Alvaro\.virtualenvs\DjangoChannels-lIBZLoxz\lib\site-packages\channels\routing.py:54:__call__
C:\Users\Alvaro\.virtualenvs\DjangoChannels-lIBZLoxz\lib\site-packages\channels\routing.py:150:__call__
]
WebSocket DISCONNECT /socketcluster/ [127.0.0.1:58432]
我的客户端应用程序是一个非常简单的HTML页面,带有Javascript,它连接到服务器,并在单击按钮时发送消息
// Connect Socket
const endpoint = 'ws://localhost:8000/test/'
const socket = new WebSocket(endpoint)
// Button Event listener
const btn = document.getElementById('myBtn')
btn.addEventListener('click', ()=>{
socket.send("Button Clicked!!!!")
})
我的消费者非常简单,只接受连接并打印它们以及消息和断开连接:
from channels.consumer import AsyncConsumer
class MyConsumer(AsyncConsumer):
async def websocket_connect(self, event):
# Runs when new client tries to connect
print("Connected:", event)
await self.send({"type": "websocket.accept"})
async def websocket_receive(self, event):
# Runs when new message received
print("Received:", event)
async def websocket_disconnect(self, event):
# Runs when client gets disconnected
print("Disconnected:", event)
最后,我的“routing.py”中只有一个名为“test/”的路由:
from channels.routing import ProtocolTypeRouter, URLRouter
from django.urls import path
from apps.core.consumers import MyConsumer
router = URLRouter([
path("test/", MyConsumer)
])
application = ProtocolTypeRouter({
'websocket': router
})
其他一切似乎都很正常,当我单击HTML按钮时,我会在服务器中收到消息,但此错误消息每隔20-60秒左右就会显示一次
目前没有回答
相关问题 更多 >
编程相关推荐