WebSocket relay for real-time collaborative editing in Content.One. Relays presence, cursors, and typing events between users editing the same content item.
<script src="https://collab.socket.content.one/collab.min.js"></script>
const collab = new ContentOneCollab({
serverUrl: "wss://collab.socket.content.one",
roomId: "8-instanceZuid", // just the instance GUID — everyone in this instance shares the room
token: document.cookie.match(/APP_SID=([^;]+)/)?.[1],
onUserJoined: (user, users) => console.log(user.userName + " joined"),
onMouseMove: (userId, x, y) => moveRemoteCursor(userId, x, y),
onTyping: (userId, field, value) => showRemoteTyping(userId, field, value),
});
collab.connect();
// Broadcast presence so peers know your app + current page
const presence = JSON.stringify({ app: location.hostname, resource: location.pathname });
collab.sendTyping("__presence__", presence, 0, 0);
document.addEventListener("mousemove", (e) =>
collab.sendMouseMove(e.clientX, e.clientY)
);
// Re-broadcast on navigation
window.addEventListener("popstate", () => {
const p = JSON.stringify({ app: location.hostname, resource: location.pathname });
collab.sendTyping("__presence__", p, 0, 0);
});
GET https://collab.socket.content.one/health → 200 ok