如何将数据客户端发送到服务器 django 通道



嗨,我正在尝试使用 websocket 将数据 js 发送到 django 但不起作用你能帮我哪里做错了吗?

ps:我能够将数据从服务器发送到客户端

错误:

引发 ValueError("传入的 WebSocket 框架没有文本部分!"(

传入的 WebSocket 框架没有文本部分!

网络套接字断开连接/ws/[127.0.0.1:64282]

.js

document.addEventListener('DOMContentLoaded', function () {
let webSocketBridge = new WebSocket("ws://127.0.0.1:8000/ws/");
webSocketBridge.onopen = function(action) {
console.log(action);
webSocketBridge.send(JSON.stringify({
"id": "client1"
}));
};
webSocketBridge.onmessage = function(event) {
let message = event.data;
as += message + "rn";
$('#messages').html(as);
};

consumer.py

import asyncio
from channels.generic.websocket import AsyncJsonWebsocketConsumer
class TickTockConsumer(AsyncJsonWebsocketConsumer):
async def connect(self):
await self.accept()
while 1:
await asyncio.sleep(0.1)
await self.send_json("tick")
await asyncio.sleep(0.1)
await self.send_json(".......tock")
await self.receive()

我找到了

class TickTockConsumer(WebsocketConsumer):
def connect(self):
self.accept()
self.send("tick")
self.send(".......tock")
def receive(self, text_data):
print(text_data)

或使用异步 JSON

class TickTockConsumer(AsyncJsonWebsocketConsumer):
async def connect(self):
await self.accept()
await self.send("tick")
await self.send(".......tock")
async def receive(self, text_data):
print(text_data)

最新更新