Browse Source

ws update

Xiaoyu Lu 1 year ago
parent
commit
b31ba1bdfc

+ 1 - 1
.idea/misc.xml

@@ -3,5 +3,5 @@
   <component name="Black">
   <component name="Black">
     <option name="sdkName" value="Python 3.9 (python)" />
     <option name="sdkName" value="Python 3.9 (python)" />
   </component>
   </component>
-  <component name="ProjectRootManager" version="2" project-jdk-name="Python 3.9 (python)" project-jdk-type="Python SDK" />
+  <component name="ProjectRootManager" version="2" project-jdk-name="Python 3.7 (python)" project-jdk-type="Python SDK" />
 </project>
 </project>

+ 1 - 1
.idea/python.iml

@@ -4,7 +4,7 @@
     <content url="file://$MODULE_DIR$">
     <content url="file://$MODULE_DIR$">
       <excludeFolder url="file://$MODULE_DIR$/venv" />
       <excludeFolder url="file://$MODULE_DIR$/venv" />
     </content>
     </content>
-    <orderEntry type="inheritedJdk" />
+    <orderEntry type="jdk" jdkName="Python 3.7 (python)" jdkType="Python SDK" />
     <orderEntry type="sourceFolder" forTests="false" />
     <orderEntry type="sourceFolder" forTests="false" />
   </component>
   </component>
 </module>
 </module>

BIN
__pycache__/messageClass.cpython-37.pyc


BIN
__pycache__/screen.cpython-37.pyc


BIN
__pycache__/win32Test.cpython-37.pyc


+ 6 - 9
listenTest.py

@@ -1,4 +1,5 @@
 import asyncio
 import asyncio
+import time
 
 
 import pika
 import pika
 from pynput import mouse
 from pynput import mouse
@@ -7,7 +8,7 @@ from pynput.mouse import Controller
 import messageClass
 import messageClass
 import screen
 import screen
 
 
-connection = pika.BlockingConnection(pika.ConnectionParameters('localhost'))
+connection = pika.BlockingConnection(pika.ConnectionParameters(host='192.168.0.13', port=5672))
 channel = connection.channel()
 channel = connection.channel()
 
 
 channel.exchange_declare("sync", "fanout", durable=True)
 channel.exchange_declare("sync", "fanout", durable=True)
@@ -38,8 +39,10 @@ def on_click(x, y, button, pressed):
     # dx,
     # dx,
     # dy,
     # dy,
     if in_monitorZone():
     if in_monitorZone():
-        message = messageClass.ClickMessage(x, y, button).getMessage()
-        channel.basic_publish(exchange='sync', routing_key='', body=message)
+        if pressed:
+            message = messageClass.ClickMessage(x, y, button).getMessage()
+            channel.basic_publish(exchange='sync', routing_key='', body=message)
+            print(time.time())
     # if not pressed:
     # if not pressed:
     #     # Stop listener
     #     # Stop listener
     #     return False
     #     return False
@@ -76,9 +79,3 @@ with mouse.Listener(
         on_click=on_click,
         on_click=on_click,
         on_scroll=on_scroll) as listener:
         on_scroll=on_scroll) as listener:
     listener.join()
     listener.join()
-
-# ...or, in a non-blocking fashion:
-listener = mouse.Listener(
-    on_click=on_click,
-    on_scroll=on_scroll)
-listener.start()

+ 1 - 1
screen.py

@@ -45,4 +45,4 @@ def arrange_slave():
     return len(chrome)
     return len(chrome)
 
 
 
 
-arrange_master()
+# arrange_master()

+ 69 - 0
websocketSend.py

@@ -0,0 +1,69 @@
+import asyncio
+import time
+
+import websockets
+from pynput import mouse
+from pynput.mouse import Controller
+from contextlib import suppress
+import messageClass
+
+connected_clients = set()
+
+
+async def broadcast(message):
+    if connected_clients:
+        await asyncio.wait([client.send(message) for client in connected_clients])
+
+async def register(websocket):
+    connected_clients.add(websocket)
+
+async def unregister(websocket):
+    connected_clients.remove(websocket)
+
+async def server_handler(websocket, path):
+    await register(websocket)
+    try:
+        async for message in websocket:
+            await broadcast(message)
+    finally:
+        await unregister(websocket)
+
+async def main():
+    async with websockets.serve(server_handler,  "192.168.0.54", 8765):
+        print("websocket server is running...")
+        await asyncio.Future()
+
+mouse_controller = Controller()
+
+
+def on_click(x, y, button, pressed):
+    if pressed:
+        message = messageClass.ClickMessage(x, y, button).getMessage()
+        broadcast(message)
+        print(time.time())
+
+def on_scroll(x, y, dx, dy):
+    message = messageClass.ScrollMessage(x, y, dx, dy).getMessage()
+    broadcast(message)
+    print(time.time())
+
+
+if __name__ == "__main__":
+    listener = mouse.Listener(
+        on_click=on_click,
+        on_scroll=on_scroll)
+    listener.start()
+    loop = asyncio.get_event_loop()
+
+    try:
+        loop.run_until_complete(main())
+
+    except KeyboardInterrupt:
+        print("shutting down websocket server...")
+    finally:
+        tasks = asyncio.gather(*asyncio.all_tasks(loop), return_exceptions=True)
+        tasks.add_done_callback(lambda t: loop.stop())
+        tasks.cancel()
+
+        with suppress(asyncio.CancelledError):
+            loop.run_forever()

+ 0 - 0
wsClient.py