Skip to content

Commit 74bd40b

Browse files
committed
fix(client): improve error handling and readability
1 parent b6d6bc6 commit 74bd40b

File tree

1 file changed

+23
-7
lines changed

1 file changed

+23
-7
lines changed

src/diart/console/client.py

+23-7
Original file line numberDiff line numberDiff line change
@@ -64,8 +64,12 @@ def run():
6464
type=str,
6565
help="Path to an audio file | 'microphone' | 'microphone:<DEVICE_ID>'",
6666
)
67-
parser.add_argument("--host", required=True, type=str, help="Server host")
68-
parser.add_argument("--port", required=True, type=int, help="Server port")
67+
parser.add_argument(
68+
"--host", default="0.0.0.0", type=str, help="Server host. Defaults to 0.0.0.0"
69+
)
70+
parser.add_argument(
71+
"--port", default=7007, type=int, help="Server port. Defaults to 7007"
72+
)
6973
parser.add_argument(
7074
"--step", default=0.5, type=float, help=f"{argdoc.STEP}. Defaults to 0.5"
7175
)
@@ -93,17 +97,18 @@ def run():
9397

9498
# Wait for READY signal from server
9599
print("Waiting for server to be ready...", end="", flush=True)
96-
while True:
100+
while not stop_event.is_set():
97101
try:
98102
message = ws.recv()
99103
if message.strip() == "READY":
100104
print(" OK")
101105
break
102106
print(f"\nUnexpected message while waiting for READY: {message}")
103107
except WebSocketException as e:
104-
print(f"\nError while waiting for server: {e}")
108+
print(f"\nWebSocket error while waiting for server: {e}")
105109
return
106110

111+
# Start threads for sending and receiving audio
107112
sender = Thread(
108113
target=send_audio,
109114
args=[ws, args.source, args.step, args.sample_rate, stop_event],
@@ -113,14 +118,25 @@ def run():
113118
sender.start()
114119
receiver.start()
115120

121+
try:
122+
# Wait for threads to complete or for keyboard interrupt
123+
sender.join()
124+
receiver.join()
125+
except KeyboardInterrupt:
126+
print("\nShutting down...")
127+
stop_event.set()
128+
116129
except Exception as e:
117130
print(f"Error: {e}")
118-
stop_event.set()
131+
119132
finally:
133+
stop_event.set()
120134
try:
121135
ws.close()
122-
except:
123-
pass
136+
except WebSocketException:
137+
print("Error closing WebSocket")
138+
except Exception as e:
139+
print(f"Unexpected error closing WebSocket: {e}")
124140

125141

126142
if __name__ == "__main__":

0 commit comments

Comments
 (0)