summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDogKing <dogking@DESKTOP-35DN20C.>2025-08-16 21:59:51 +0800
committerDogKing <dogking@DESKTOP-35DN20C.>2025-08-16 21:59:51 +0800
commitc1872fe1c8e7cae20cb465508c6d9a12e11bf7c8 (patch)
tree5f34ec8bca3df55ecf7be1196e0cbc0f45fd0c96
initial commit
-rw-r--r--server_dino.py51
1 files changed, 51 insertions, 0 deletions
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