From c1872fe1c8e7cae20cb465508c6d9a12e11bf7c8 Mon Sep 17 00:00:00 2001 From: DogKing Date: Sat, 16 Aug 2025 21:59:51 +0800 Subject: initial commit --- server_dino.py | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 server_dino.py (limited to 'server_dino.py') diff --git a/server_dino.py b/server_dino.py new file mode 100644 index 0000000..a0ba7c7 --- /dev/null +++ b/server_dino.py @@ -0,0 +1,51 @@ +import logging +from websocket_server import WebsocketServer +import json +from time import sleep +import math +import threading + +class Server: + def __init__(self): + self.t=0 + self.clients=[] + self.running=False + + def new_client(self,client,server): + self.clients.append(client) + print("Client(%d) has joined." % client['id']) + + def client_left(self, client, server): + print("Client(%d) disconnected." % client['id']) + + # def updateStatus(self, client, server): + # data={'x':self.x} + # server.send_message(client,json.dump(data)) + + def send_sine_wave(self, server): + while self.running: + # 计算正弦值 (频率设为1Hz) + x = 0.5*math.sin(2 * math.pi * 0.1* self.t)+0.5 + + # 发送给所有连接的客户端 + data={'t':self.t,'x':x} + for client in self.clients: + server.send_message(client, json.dumps(data)) + + # 更新时间并等待0.1秒 + self.t += 0.1 + sleep(0.1) + + def start_server(self): + server = WebsocketServer(port=4200, host='127.0.0.1', loglevel=logging.INFO) + server.set_fn_new_client(self.new_client) + server.set_fn_client_left(self.client_left) + + self.running = True + # 启动发送正弦波的线程 + threading.Thread(target=self.send_sine_wave, args=(server,), daemon=True).start() + + server.run_forever() + +server=Server() +server.start_server() \ No newline at end of file -- cgit v1.2.3