handlers_for_charts.py 712 字节
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
import json
import random
import time

import tornado.websocket

clients_set = set()


class ChartHandler(tornado.websocket.WebSocketHandler):

    def open(self):
        clients_set.add(self)

    def on_close(self):
        clients_set.remove(self)


def gen_mock_data(num_of_series, num_of_sample):
    data = []
    for _ in range(num_of_series):
        series = []
        for _ in range(num_of_sample):
            series.append(random.randint(50, 500))
        data.append(series)
    return data


def send_data(delay):
    while True:
        for ws_client in clients_set:
            data = gen_mock_data(3, 7)
            ws_client.write_message(json.dumps(data).encode())
        time.sleep(delay)