Wasabee and Firebase Cloud Messaging - wasabee-project/Wasabee-IITC GitHub Wiki

Overview

Firebase Cloud Messaging (Firebase, or FCM) is a Google service which allows sending of messages from a central server to a number of clients with high performance. Wasabee-Server uses FCM to notify Wasabee-IITC, Wasabee-Mobile and Wasabee-WebUI when important things happen. If a client doesn't support FCM, it still works, but real-time updates do not happen. Agents should not need to interact with FCM directly, but knowing about it can help diagnose some problems.

Using a client that does not support FCM doesn't cause problems, it just means that data isn't updated as frequently/reliably.

Please see the architecture overview for the communication flows related to FCM

FCM Messages in Wasabee

The Wasabee-Server software sends FCM messages to the various clients (Wasabee-IITC, Wasabee-Mobile, Wasabee-WebUI) when important events happen.

  • Operation data is updated (sent to all agents on all teams with permission to the operation)
  • An agent location changes (sent to all agents on all teams with which the agent is sharing location data)
  • An operation is deleted (sent to all agents, on all federated servers)
  • An operator sends a target or marker assignment to an agent (single agent)

To enable FCM visit Here

Advantages of using a client that supports FCM

  • Real-time update of agent location (it's like magic)
  • Real-time update of operation status -- especially useful when multiple people are editing the same operation

Disadvantages of using a client that does not support FCM

  • Increased likelihood of edits needing to be merged/rebased/resolved
  • Agent location refreshes less frequently

Clients that support FCM

  • All clients hosted in Google Chrome work properly: Wasabee-IITC, Wasabee-WebUI
  • Wasabee-Mobile on Android has good support for FCM

Clients that do not support FCM

  • Clients hosted in Apple Safari
  • Wasabee-Mobile on iOS (support is coming)
  • Wasabee-IITC hosted in IITC-Mobile on Android or iOS
  • Clients hosted in Firefox (double check this)