MCPcopy Create free account
hub / github.com/TzuHuanTai/RaspberryPi-WebRTC / AsyncUnixSocketClient

Class AsyncUnixSocketClient

examples/unix_socket_client.py:3–39  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1import asyncio
2
3class AsyncUnixSocketClient:
4 def __init__(self, socket_path):
5 self.socket_path = socket_path
6 self.reader = None
7 self.writer = None
8
9 async def connect(self):
10 try:
11 self.reader, self.writer = await asyncio.open_unix_connection(self.socket_path)
12 print(f"Connected to {self.socket_path}")
13 except Exception as e:
14 print(f"Connection failed: {e}")
15
16 async def send(self, message: str):
17 if self.writer is not None:
18 self.writer.write(message.encode())
19 await self.writer.drain()
20 print(f"Sent: {message}")
21
22 async def receive_loop(self):
23 try:
24 while True:
25 data = await self.reader.read(1024)
26 if not data:
27 print("Disconnected from server")
28 break
29 print(f"Received: {data.decode()}")
30 except Exception as e:
31 print(f"Error in receive loop: {e}")
32
33 async def run(self):
34 await self.connect()
35 if self.reader and self.writer:
36 asyncio.create_task(self.receive_loop())
37 while True:
38 await self.send("ping from client")
39 await asyncio.sleep(2)
40
41if __name__ == "__main__":
42 SOCKET_PATH = "/tmp/pi-webrtc-ipc.sock"

Callers 1

Calls

no outgoing calls

Tested by

no test coverage detected