What is Real Time Messaging?
Real time Messaging refers to the distribution and delivery of messages that are designed to be consumed or otherwise used in real time (i.e. as events occur and no later).
Real time messaging on the web typically involves a system in which data is streamed or pushed to users, applications, or devices with an appropriate real time delivery mechanism such as Publish/Subscribe. The concept can also be compared with something as simple as a webhook, which provides the ability to push updates out from an app to external URLs as they occur.
Importantly, it's not only humans that benefit from real time messaging (e.g. social media), but it is also essential for autonomous, distributed, or "smart" devices that must work in tandem to achieve a common goal. Environmental control, industrial process monitoring, smart infrastructure and many other technologies make use of real time messaging to:
- Drive processes that depend on intrinsically unpredictable events.
- Ensure logical / situational awareness of the present state of a system.
- Provide a synchronous overview of different parts of a larger environment.
Real time messaging protocols often feature support for online presence information (e.g. green: online, red: offline) for when it is useful to know a user's, or device's, availability. XMPP, WebSockets, and HTTP Long Polling is a good example of a real time messaging protocol that offers high customizability and extensionality on top of which a real time application can be built.