text icon indicating copy to clipboard operation
text copied to clipboard

Using notify_push for syncing

Open Lejo1 opened this issue 4 years ago • 3 comments

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.

Lejo1 avatar Aug 02 '21 09:08 Lejo1

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.

juliusknorr avatar Aug 02 '21 11:08 juliusknorr

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) => {

})

icewind1991 avatar Aug 02 '21 14:08 icewind1991

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.

max-nextcloud avatar Nov 19 '22 12:11 max-nextcloud