66from typing import TYPE_CHECKING , Any
77from urllib .parse import urljoin
88
9- from aiohttp import (
10- ClientError ,
11- ClientSession ,
12- ClientWebSocketResponse ,
13- WSMsgType ,
14- WSServerHandshakeError ,
15- )
9+ from aiohttp import ClientSession , ClientWebSocketResponse , WSMsgType
1610
17- from go2rtc_client .exceptions import Go2RtcClientError
18- from go2rtc_client .ws .messages import BaseMessage
11+ from go2rtc_client .exceptions import handle_error
12+
13+ from .messages import BaseMessage
1914
2015_LOGGER = logging .getLogger (__name__ )
2116
@@ -56,26 +51,22 @@ def connected(self) -> bool:
5651 """Return if we're currently connected."""
5752 return self ._client is not None and not self ._client .closed
5853
54+ @handle_error
5955 async def connect (self ) -> None :
6056 """Connect to device."""
6157 async with self ._connect_lock :
6258 if self .connected :
6359 return
6460
6561 _LOGGER .debug ("Trying to connect to %s" , self ._server_url )
66- try :
67- self ._client = await self ._session .ws_connect (
68- urljoin (self ._server_url , "/api/ws" ), params = self ._params
69- )
70- except (
71- WSServerHandshakeError ,
72- ClientError ,
73- ) as err :
74- raise Go2RtcClientError (err ) from err
62+ self ._client = await self ._session .ws_connect (
63+ urljoin (self ._server_url , "/api/ws" ), params = self ._params
64+ )
7565
7666 self ._rx_task = asyncio .create_task (self ._receive_messages ())
7767 _LOGGER .info ("Connected to %s" , self ._server_url )
7868
69+ @handle_error
7970 async def close (self ) -> None :
8071 """Close connection."""
8172 if self .connected :
@@ -85,6 +76,7 @@ async def close(self) -> None:
8576 self ._client = None
8677 await client .close ()
8778
79+ @handle_error
8880 async def send (self , message : BaseMessage ) -> None :
8981 """Send a message."""
9082 if not self .connected :
0 commit comments