comparison libervia/server/websockets.py @ 1513:ff95501abe74

server (websocket): don't crash when a force-close is failing
author Goffi <goffi@goffi.org>
date Mon, 22 May 2023 11:57:49 +0200
parents 106bae41f5c8
children
comparison
equal deleted inserted replaced
1512:65e063657597 1513:ff95501abe74
102 ) 102 )
103 103
104 session.touch() 104 session.touch()
105 session_data = session.getComponent(session_iface.IWebSession) 105 session_data = session.getComponent(session_iface.IWebSession)
106 if session_data.ws_socket is not None: 106 if session_data.ws_socket is not None:
107 log.warning("Session socket is already set, force closing it") 107 log.warning(f"Session socket is already set {session_data.ws_socket=} {self=}], force closing it")
108 session_data.ws_socket.send( 108 try:
109 "force_close", {"reason": "duplicate connection detected"} 109 session_data.ws_socket.send(
110 ) 110 "force_close", {"reason": "duplicate connection detected"}
111 )
112 except Exception as e:
113 log.warning(f"Can't force close old connection: {e}")
111 session_data.ws_socket = self 114 session_data.ws_socket = self
112 self.__session = session_data 115 self.__session = session_data
113 self.__profile = session_data.profile or C.SERVICE_PROFILE 116 self.__profile = session_data.profile or C.SERVICE_PROFILE
114 log.debug(f"websocket connection connected for profile {self.__profile}") 117 log.debug(f"websocket connection connected for profile {self.__profile}")
115 return "libervia-page" 118 return "libervia-page"