Realtime collaboration server

A server can be setup to be the backend that hosts all your files and annotations to use realtime collaboration with Apryse SDK.

Realtime collaboration basics

This tutorial only applies to Xamarin.Android.

Host annotations in your own server

In realtime collaboration, a server will merely act as an online database that triggers events upon data creation/modification/deletion. As long as the above requirement is met, your server can be built in any language and stack of your choice. Apryse provides an interface that will allow you to connect your data to the out-of-box UI.

  1. Your will need to obtain a reference to CollabManager from the CollabViewerTabHostFragment2, then setup the current collaboration session, for example:

C#

1void HandleTabDocumentLoaded(String tag)
2{
3 // setup the current collaboration session
4 var collabManager = mPdfViewCtrlTabHostFragment.CollabManager;
5 if (collabManager != null)
6 {
7 collabManager.SetCurrentUser(mUserId, mUserName);
8 collabManager.SetCurrentDocument(mDocumentId);
9 collabManager.SendAnnotationEvent += (sender, e) =>
10 {
11 // local change, send info to server here
12 };
13 }
14}
  1. When your server notifies the client about remote changes, import the XFDF command string with CollabManager:

C#

1void ImportXfdf(String xfdfCommand) {
2 var collabManager = mCollabViewerTabHostFragment.CollabManager;
3 collabManager.ImportAnnotationCommand(xfdfCommand);
4}

The annotations appearing on the document in real time are managed through a separate XFDF format, while the original version of the document is preserved on the server. Note that the client downloads the original untouched document at the start of the collaboration session.

And that is it! Apryse will handle all annotation syncing and annotation reply for you.

Did you find this helpful?

Trial setup questions?

Ask experts on Discord

Need other help?

Contact Support

Pricing or product questions?

Contact Sales