java - 如何将数据客户端发送到服务器django channel

标签 java django python-3.x django-channels ws

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

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

错误:

raise ValueError("No text section for incoming WebSocket frame!")

No text section for incoming WebSocket frame!

WebSocket DISCONNECT /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 + "\r\n";
            $('#messages').html(as);

        };

消费者.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)

关于java - 如何将数据客户端发送到服务器django channel ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57951069/

相关文章:

java - 约束注释中的变量字段

python - 在 Django Admin 中显示上标

python - 有没有办法抵制在使用 Django 的 orm 时只检查 id 存在的不必要的连接?

macos - python找不到用pip安装的包

python - 在单独的python线程中运行函数

java - 优化 MySQL 读取模式

java - 向 kotlin 中的 Math 类添加扩展函数

java - 如何让 IntelliJ 自动完成列表变量的实例化?

html - 如何显示选定的导航选项卡

python - Pygame 多颗子弹不产生