当我尝试通过websocket连接到服务器时,我只在chrome (不是safari,也不是firefox)中得到这个错误:Sent non-empty 'Sec-WebSocket-Protocol' header but no response was received
。服务器接受该连接,但chrome却意外地立即将其关闭。
这就是我在前端创建websocket连接的方法:
const websocket = new WebSocket('ws://127.0.0.1:8000/ws/', ['Token', 'user_secret_token'])
这是我的consumers.py
的样子:
class MyConsumer(JsonWebsocketConsumer):
def connect(self):
self.room_group_name = 'example_room'
# Join room group
async_to_sync(self.channel_layer.group_add)(self.room_group_name, self.channel_name)
self.accept()
发布于 2020-11-10 05:57:06
解决方案是在服务器上调用self.accept()
时添加我使用的websocket协议(令牌)作为子协议参数。
下面是我的消费者现在的样子:
class MyConsumer(JsonWebsocketConsumer):
def connect(self):
self.room_group_name = 'example_room'
# Join room group
async_to_sync(self.channel_layer.group_add)(self.room_group_name, self.channel_name)
# incorrect
# self.accept()
# correct
self.accept('Token')
https://stackoverflow.com/questions/64759832
复制相似问题