diff --git a/projects/jupyter-server-ydoc/jupyter_server_ydoc/handlers.py b/projects/jupyter-server-ydoc/jupyter_server_ydoc/handlers.py index a63bd379..43b5fdf0 100644 --- a/projects/jupyter-server-ydoc/jupyter_server_ydoc/handlers.py +++ b/projects/jupyter-server-ydoc/jupyter_server_ydoc/handlers.py @@ -234,8 +234,6 @@ async def open(self, room_id: str) -> None: # type:ignore[override] """ On connection open. """ - self.create_task(self._websocket_server.serve(self)) - if isinstance(self.room, DocumentRoom): # Close the connection if the document session expired session_id = self.get_query_argument("sessionId", "") @@ -280,6 +278,7 @@ async def open(self, room_id: str) -> None: # type:ignore[override] # Initialize the room async with self._room_lock(self._room_id): await self.room.initialize() + self.create_task(self._websocket_server.serve(self)) self._emit_awareness_event(self.current_user.username, "join") except Exception as e: _, _, file_id = decode_file_path(self._room_id) @@ -327,6 +326,7 @@ async def open(self, room_id: str) -> None: # type:ignore[override] self._emit(LogLevel.INFO, "initialize", "New client connected.") else: + self.create_task(self._websocket_server.serve(self)) if self._room_id != "JupyterLab:globalAwareness": self._emit_awareness_event(self.current_user.username, "join") diff --git a/projects/jupyter-server-ydoc/jupyter_server_ydoc/rooms.py b/projects/jupyter-server-ydoc/jupyter_server_ydoc/rooms.py index d432933e..680fa61d 100644 --- a/projects/jupyter-server-ydoc/jupyter_server_ydoc/rooms.py +++ b/projects/jupyter-server-ydoc/jupyter_server_ydoc/rooms.py @@ -178,7 +178,6 @@ async def initialize(self) -> None: if self.ystore: await self.ystore.encode_state_as_update(self.ydoc) - self._document.dirty = False self.ready = True self._emit(LogLevel.INFO, "initialize", "Room initialized")