text
text copied to clipboard
y-http provider to replace y-websocket and websocket polyfill
Is your feature request related to a problem? Please describe. The yjs provider that syncs with the server is way to complex
Describe the solution you'd like Have a y-http provider that takes care of the syncing and can handle being online / offline well.
y-http
- [x] open connection
- [x] expose connection
- [x] basic syncing
- [x] basic awareness messages
- [x] include url in connection
- [x] expect client to know params to open
- [x] use ydoc client id in open
- [x] handle awareness queries (without sending them)
- [x] delay test requests
- [x] ensure awareness messages are send at least every 10 seconds
- [x] return only newer messages in DummyServer
- [x] hand version to sync request
- [x] ensure old awareness states are cleared after 30 seconds
- [x] implement closing the connection
- [x] test reopening the connection
embedding in text js
- [x] implement client to instantiate y-http with
- [ ] extract api calls from Sync service and use connection instead
- [ ] extract document flags such as
hasOwnerfrom sync service and use them - [ ] implement events in y-http provider and handle them instead of sync service events
server side
- [ ] allow flagging updates as full compressed history
- [ ] at most send all versions since last compressed one
- [ ] clean up older versions
later
- [ ] process queries
- [ ] send query message with every request
- [ ] send compressed history
- [ ] make the api stateless, removing the need for connection
- [ ] reset remote doc when receiving compressed history
- [ ] detect out of sync and reconnect (effectively receiving compressed history and all steps since then)
- [ ] handle sync queries (without sending them)