Skip to content

y-http provider to replace y-websocket and websocket polyfill #7283

@max-nextcloud

Description

@max-nextcloud

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

  • open connection
  • expose connection
  • basic syncing
  • basic awareness messages
  • include url in connection
  • expect client to know params to open
  • use ydoc client id in open
  • handle awareness queries (without sending them)
  • delay test requests
  • ensure awareness messages are send at least every 10 seconds
  • return only newer messages in DummyServer
  • hand version to sync request
  • ensure old awareness states are cleared after 30 seconds
  • implement closing the connection
  • test reopening the connection

embedding in text js

  • implement client to instantiate y-http with
  • extract api calls from Sync service and use connection instead
  • extract document flags such as hasOwner from 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)

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions