Using notify_push for syncing
Is your feature request related to a problem? Please describe. Currently the client frequently has to check for changes on the server creating high load also for idle files.
Describe the solution you'd like The notify_push app can solve this problem by pushing the changes to the client directly via a websocket. Therefore the latency will be highly reduced making the app even better for collaboration.
Additional context The notify_push app is already used for file updates which are often even faster than the syncing of the text app.
Yes, that would definitely be a nice integration. @icewind1991 I guess it would make sense to have a dedicated message type implemented on the notify_push side that the text app can use to push document changes to any active editing session for a document through the websocket.
This should already be possible without any changes to notify_push by using custom events
$queue = \OC::$server->get(OCA\NotifyPush\IQueue::class);
$queue->push('notify_custom', [
'user' => "uid",
'message' => "my_message_type",
'body' => ["foo" => "bar"], // optional
]);
and
import { listen } from '@nextcloud/notify_push'
listen('my_message_type', (message_type, body) => {
})
Planning to tackle this as part of the y.js based collaboration rework in #2669. There's little use in looking into it before hand as a lot of the collaboration API will change. So marking the issue as blocked by the y.js rework.