#!/usr/bin/env python3 """ Простой тест WebSocket соединения для Emergency Service """ import asyncio import json import websockets import sys async def test_websocket_connection(): """Тест подключения к WebSocket эндпоинту""" # Используем фиктивный токен для тестирования test_token = "test_token_123" user_id = "current_user_id" uri = f"ws://localhost:8002/api/v1/emergency/ws/{user_id}?token={test_token}" print(f"Попытка подключения к: {uri}") try: async with websockets.connect(uri) as websocket: print("✅ WebSocket подключение установлено!") # Отправляем ping await websocket.send(json.dumps({"type": "ping"})) print("📤 Отправлен ping") # Ждем ответ response = await asyncio.wait_for(websocket.recv(), timeout=5.0) print(f"📥 Получен ответ: {response}") # Ждем еще немного для других сообщений try: while True: message = await asyncio.wait_for(websocket.recv(), timeout=2.0) print(f"📥 Дополнительное сообщение: {message}") except asyncio.TimeoutError: print("⏱️ Таймаут - больше сообщений нет") except websockets.exceptions.ConnectionClosedError as e: if e.code == 1008: print("❌ Подключение отклонено (403 Forbidden) - проблема с аутентификацией") else: print(f"❌ Подключение закрыто с кодом {e.code}: {e}") except ConnectionRefusedError: print("❌ Соединение отклонено - сервер не запущен или порт неправильный") except Exception as e: print(f"❌ Ошибка: {type(e).__name__}: {e}") if __name__ == "__main__": asyncio.run(test_websocket_connection())