diff --git a/app/scenes/Document/components/MultiplayerEditor.tsx b/app/scenes/Document/components/MultiplayerEditor.tsx index 38af2864eec9..a94e037f4eb3 100644 --- a/app/scenes/Document/components/MultiplayerEditor.tsx +++ b/app/scenes/Document/components/MultiplayerEditor.tsx @@ -139,6 +139,9 @@ function MultiplayerEditor({ onSynced, ...props }: Props, ref: any) { }); if (debug) { + provider.on("close", (ev: MessageEvent) => + Logger.debug("collaboration", "close", ev) + ); provider.on("message", (ev: MessageEvent) => Logger.debug("collaboration", "incoming", { message: ev.message, diff --git a/server/services/collaboration.ts b/server/services/collaboration.ts index 9454e42808db..353c2bd6ba22 100644 --- a/server/services/collaboration.ts +++ b/server/services/collaboration.ts @@ -4,6 +4,7 @@ import url from "url"; import { Server } from "@hocuspocus/server"; import Koa from "koa"; import WebSocket from "ws"; +import { DocumentValidation } from "@shared/validations"; import Logger from "@server/logging/Logger"; import AuthenticationExtension from "../collaboration/AuthenticationExtension"; import LoggerExtension from "../collaboration/LoggerExtension"; @@ -18,6 +19,7 @@ export default function init( const path = "/collaboration"; const wss = new WebSocket.Server({ noServer: true, + maxPayload: DocumentValidation.maxStateLength, }); const hocuspocus = Server.configure({ diff --git a/shared/validations.ts b/shared/validations.ts index 6bdd74f70ba0..a95c8c9b54f6 100644 --- a/shared/validations.ts +++ b/shared/validations.ts @@ -32,7 +32,7 @@ export const DocumentValidation = { maxTitleLength: 100, /** The maximum size of the collaborative document state */ - maxStateLength: 1000000, + maxStateLength: 1500 * 1024, }; export const PinValidation = {