Класс JsonWebsocketConsumer self.send () в al oop отправляет все сообщения об итерациях одновременно - PullRequest
0 голосов
/ 21 января 2020

когда я использую self.send (content) в al oop, все сообщения отправляются сразу, а не одно мое.

первый self.send () в условии if od выполняется отлично, но все сообщения l oop self.send () принимаются клиентом сразу после задержки около 60 секунд. как сделать это по одному?

consumer.py
from channels.generic.websockets import JsonWebsocketConsumer

class MyConsumer(JsonWebsocketConsumer):
    # Set to True if you want it, else leave it out
    strict_ordering = False
    def connect(self, message, **kwargs):
        super(MyConsumer,self).connect(message)
        pass
    def receive(self, content, **kwargs):
        if content['status'] == "connecting":
            content['status'] = "connected"
            self.send(content)
        elif content['status'] == "data":
            for p in range(5):
                content={
                    'status': 'sending',
                    'polygon': p
                }
                self.send(content)
                time.sleep(15)
            self.close()
    def disconnect(self, message, **kwargs):
        pass

clientide. js

socket = new WebSocket("ws://" + location.host + "/mahaplans/");
                    socket.onopen = function () {
                        var msg = {
                            status: "connecting"
                        };
                        socket.send(JSON.stringify(msg))
                    }
                    socket.onmessage = function (e) {

                        let status=JSON.parse(e.data)

                        if (status["status"]=="connected") {
                            var imageData={
                                #someddata
                            }
                            socket.send(JSON.stringify(imageData))
                        }

                        if (status["status"]=="sending") {
                            console.log(status["polygon"])
                        }
                    }
                    socket.onclose = function (event) {
                        console.log("bye bye")
                    }
                if (socket.readyState == WebSocket.OPEN) socket.onopen();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...