Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -143,6 +143,7 @@ def to_json(self) -> str:


SOCKETIO_MESSAGE_PREFIX: Final[str] = "42"
_WEBSOCKET_MESSAGE_PREFIX: Final[str] = "📡OSPARC-WEBSOCKET: "


@dataclass
Expand All @@ -165,20 +166,31 @@ def _configure_websocket_events(self) -> None:
) as ctx:

def on_framesent(payload: str | bytes) -> None:
ctx.logger.debug("⬇️ Frame sent: %s", payload)
ctx.logger.debug(
"%s⬇️ Frame sent: %s", _WEBSOCKET_MESSAGE_PREFIX, payload
)

def on_framereceived(payload: str | bytes) -> None:
ctx.logger.debug("⬆️ Frame received: %s", payload)
ctx.logger.debug(
"%s⬆️ Frame received: %s", _WEBSOCKET_MESSAGE_PREFIX, payload
)

def on_close(_: WebSocket) -> None:
if self.auto_reconnect:
ctx.logger.warning("⚠️ WebSocket closed. Attempting to reconnect...")
ctx.logger.warning(
"%s⚠️ WebSocket closed. Attempting to reconnect...",
_WEBSOCKET_MESSAGE_PREFIX,
)
self._attempt_reconnect(ctx.logger)
else:
ctx.logger.warning("⚠️ WebSocket closed.")
ctx.logger.warning(
"%s⚠️ WebSocket closed.", _WEBSOCKET_MESSAGE_PREFIX
)

def on_socketerror(error_msg: str) -> None:
ctx.logger.error("❌ WebSocket error: %s", error_msg)
ctx.logger.error(
"%s❌ WebSocket error: %s", _WEBSOCKET_MESSAGE_PREFIX, error_msg
)

# Attach core event listeners
self.ws.on("framesent", on_framesent)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -98,6 +98,9 @@ class WaitForS4LDict(TypedDict):
iframe: FrameLocator


_WEBSOCKET_MESSAGE_S4L_PREFIX: Final[str] = "📡S4L-WEBSOCKET: "


def wait_for_launched_s4l(
page: Page,
node_id,
Expand Down Expand Up @@ -137,6 +140,31 @@ def wait_for_launched_s4l(
)
s4l_websocket = ws_info.value
ctx.logger.info("acquired S4L websocket!")

def on_framesent(payload: str | bytes) -> None:
ctx.logger.debug(
"%s⬇️ Frame sent: %s", _WEBSOCKET_MESSAGE_S4L_PREFIX, payload
)

def on_framereceived(payload: str | bytes) -> None:
ctx.logger.debug(
"%s⬆️ Frame received: %s", _WEBSOCKET_MESSAGE_S4L_PREFIX, payload
)

def on_close(_: WebSocket) -> None:
ctx.logger.warning("%s⚠️ WebSocket closed.", _WEBSOCKET_MESSAGE_S4L_PREFIX)

def on_socketerror(error_msg: str) -> None:
ctx.logger.error(
"%s❌ WebSocket error: %s", _WEBSOCKET_MESSAGE_S4L_PREFIX, error_msg
)

# Attach core event listeners
s4l_websocket.on("framesent", on_framesent)
s4l_websocket.on("framereceived", on_framereceived)
s4l_websocket.on("close", on_close)
s4l_websocket.on("socketerror", on_socketerror)

return {
"websocket": s4l_websocket,
"iframe": s4l_iframe,
Expand Down
Loading