You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The Websocket Provider is a solid choice if you want a central source that
handles authentication and authorization. Websockets also send header
information and cookies, so you can use existing authentication mechanisms with
this server.
Quick Start
Install dependencies
npm i @y/websocket-server
Start a y-websocket server
This repository implements a basic server that you can adopt to your specific use-case. (source code)
Start a y-websocket server:
HOST=localhost PORT=1234 npx y-websocket
Client Code:
import*asYfrom'yjs'import{WebsocketProvider}from'y-websocket'constdoc=newY.Doc()constwsProvider=newWebsocketProvider('ws://localhost:1234','my-roomname',doc)wsProvider.on('status',event=>{console.log(event.status)// logs "connected" or "disconnected"})
Websocket Server
Start a y-websocket server:
HOST=localhost PORT=1234 npx y-websocket
Since npm symlinks the y-websocket executable from your local ./node_modules/.bin folder, you can simply run npx. The PORT environment variable already defaults to 1234, and HOST defaults to localhost.
Send a debounced callback to an HTTP server (POST) on document update. Note that this implementation doesn't implement a retry logic in case the CALLBACK_URL does not work.
Can take the following ENV variables:
CALLBACK_URL : Callback server URL
CALLBACK_DEBOUNCE_WAIT : Debounce time between callbacks (in ms). Defaults to 2000 ms
CALLBACK_DEBOUNCE_MAXWAIT : Maximum time to wait before callback. Defaults to 10 seconds
CALLBACK_TIMEOUT : Timeout for the HTTP call. Defaults to 5 seconds
CALLBACK_OBJECTS : JSON of shared objects to get data ('{"SHARED_OBJECT_NAME":"SHARED_OBJECT_TYPE}')
This sends a debounced callback to localhost:3000 2 seconds after receiving an update (default DEBOUNCE_WAIT) with the data of an XmlFragment named "prosemirror" in the body.