River documentation

River documentation

  • Documentation
  • Blog

›Handling Updates

User Authorization

  • User Authorization

Error Handling

  • Error Handling

PUSH-notifications

  • Handling PUSH-notifications

Handling Updates

  • Handling Updates

Pagination

  • Pagination

Message Drafts

  • Message Drafts

Encryption

  • Encryption

API methods

  • Available method list

Client Optimization

  • Client Optimization

Uploading and Downloading

  • Uploading and Downloading

Handling Updates

Working with Updates

While a user is working with one of the River clients, It is quite common to happen some events that the user expects to get them as soon as possible, e.g. a new message. An update delivery mechanism is considered by which clients don't require to download these events regularly. This way, The server will send corresponding notifications over one of the users' available connections.

Update Mechanism

River developers supposed UpdateEnvelope and UpdateContainer methods to manage events depending on a defined timespan.

When a user becomes active through one of its clients, the existing and waiting dialogues will be called as a snapshot from the server. After that, when one of these events listed below occur, for example, a new message was sent, or a profile picture had been changed, and so on, an Update method will be invoked.

Updates will be invoked either individually or as batches. Accordingly, When an event occurs, the server waits for a time and if after this time doesn't receive any new events will call Update Envelope method and flash an event solely. Otherwise, it will stop for more time and then if nothing has changed, UpdateContainer will be called and sent a batch of events together.

Pay attention that this mechanism is to reduce latency time between server and client.

List of Updates

Ultimately, we mentioned below a list of events that be handled by this mechanism and called as Updates.

The list of Updates:

  • UpdateUserTyping
  • UpdateDialogPinned
  • UpdateUserPhoto
  • UpdateGroupPhoto
  • UpdateReadHistoryOutbox
  • UpdateGetDifference
  • UpdateAccountPrivacy
  • UpdateMessagesDeleted
  • UpdateGroupAdmins
  • UpdateLabelAdded
  • UpdateGetState
  • UpdateReadHistoryInbox
  • UpdateTooLong
  • UpdateDialogPinnedReorder
  • UpdateGroupParticipantAdd
  • UpdateDifference
  • UpdateGroupParticipantAdmin
  • UpdateMessageEdited
  • UpdateState
  • UpdateDraftMessageCleared
  • UpdateMessageID
  • UpdateLabelRemoved
  • UpdateAuthorizationReset
  • UpdateGroupParticipantDeleted
  • UpdateUserStatus
  • UpdateReadMessagesContents
  • UpdateNotifySettings
  • UpdateNewMessage
  • UpdateDraftMessage
  • UpdateUsername
← Handling PUSH-notificationsPagination →
  • Working with Updates
  • Update Mechanism
  • List of Updates
Copyright © 2020 RonakSoftwareGroup