fix: Maximum number of connections reached, closes #5446

The opposite of onDisconnect is connected, not onConnect. smh.
This commit is contained in:
Tom Moor
2023-10-28 10:32:58 -04:00
parent 08d89fb57a
commit 7380f6d5ae
3 changed files with 15 additions and 7 deletions

View File

@@ -1,6 +1,6 @@
import { import {
Extension, Extension,
onConnectPayload, connectedPayload,
onDisconnectPayload, onDisconnectPayload,
} from "@hocuspocus/server"; } from "@hocuspocus/server";
import env from "@server/env"; import env from "@server/env";
@@ -41,10 +41,10 @@ export class ConnectionLimitExtension implements Extension {
} }
/** /**
* onConnect hook * connected hook
* @param data The connect payload * @param data The connected payload
*/ */
onConnect({ documentName, socketId }: withContext<onConnectPayload>) { connected({ documentName, socketId }: withContext<connectedPayload>) {
const connections = const connections =
this.connectionsByDocument.get(documentName) || new Set(); this.connectionsByDocument.get(documentName) || new Set();
if (connections?.size >= env.COLLABORATION_MAX_CLIENTS_PER_DOCUMENT) { if (connections?.size >= env.COLLABORATION_MAX_CLIENTS_PER_DOCUMENT) {

View File

@@ -1,8 +1,9 @@
import { import {
onConnectPayload,
onDisconnectPayload, onDisconnectPayload,
onLoadDocumentPayload, onLoadDocumentPayload,
Extension, Extension,
connectedPayload,
onConnectPayload,
} from "@hocuspocus/server"; } from "@hocuspocus/server";
import Logger from "@server/logging/Logger"; import Logger from "@server/logging/Logger";
import { withContext } from "./types"; import { withContext } from "./types";
@@ -18,6 +19,13 @@ export default class LoggerExtension implements Extension {
Logger.info("multiplayer", `New connection to "${data.documentName}"`); Logger.info("multiplayer", `New connection to "${data.documentName}"`);
} }
async connected(data: withContext<connectedPayload>) {
Logger.info(
"multiplayer",
`Authenticated connection to "${data.documentName}"`
);
}
async onDisconnect(data: withContext<onDisconnectPayload>) { async onDisconnect(data: withContext<onDisconnectPayload>) {
Logger.info("multiplayer", `Closed connection to "${data.documentName}"`, { Logger.info("multiplayer", `Closed connection to "${data.documentName}"`, {
userId: data.context.user?.id, userId: data.context.user?.id,

View File

@@ -1,9 +1,9 @@
import { import {
onChangePayload, onChangePayload,
onConnectPayload,
onDisconnectPayload, onDisconnectPayload,
onLoadDocumentPayload, onLoadDocumentPayload,
Extension, Extension,
connectedPayload,
} from "@hocuspocus/server"; } from "@hocuspocus/server";
import Metrics from "@server/logging/Metrics"; import Metrics from "@server/logging/Metrics";
import { withContext } from "./types"; import { withContext } from "./types";
@@ -28,7 +28,7 @@ export default class MetricsExtension implements Extension {
}); });
} }
async onConnect({ documentName, instance }: withContext<onConnectPayload>) { async connected({ documentName, instance }: withContext<connectedPayload>) {
Metrics.increment("collaboration.connect", { Metrics.increment("collaboration.connect", {
documentName, documentName,
}); });