def ws_connect(self):
"""Open a websocket connection for real time events."""
if self.ws_connected:
raise exceptions.TransportError('Connection already open.')
_LOGGER.info("Opening websocket connection.")
try:
# Open an engineIO session
session_data = yield from self._get_engineio_session()
# Now that the session data has been fetched, open the actual
# websocket connection.
ws_connection = yield from self._get_ws_connection(session_data)
# Finalize connection status
self._ws_connection = ws_connection
self._ws_session_data = session_data
# Send the first ping packet
self.loop.create_task(self._ping())
except (ClientError, HttpProcessingError, asyncio.TimeoutError) as exc:
raise exceptions.TransportError from exc
return self.loop.create_task(self._ws_loop())
评论列表
文章目录