Awareness
The Awareness Service is responsible for tracking the location of users within a client-side application. As users navigate within a client-side application, they are seamlessly joined and removed from channels (or rooms). As users enter and leave a channel, event handling is triggered, allowing the client-side application to learn of other users who are in a channel or when other users enter or leave a channel.
The Awareness Service uses Socket.IO under the hood to provide support for real-time Web Sockets. This allows the client-side application to receive event notifications and results immediately using Web Sockets. The Awareness Service also supports other transport protocols including HTTP polling for compatibility with some HTTP-only architectures such as AWS Elastic Load Balancers.
The Awareness Service is an optional service. Once enabled, it is the responsibility of the client application to send messages back to the Awareness Service to indicate when a principal has joined a channel or left a channel.
Essential Configuration
{
"awareness": {
"enabled": <boolean>,
"type": "<type>",
"config": {
...configuration
}
}
}
Enable the Awareness Service
To enable the Awareness Service, including the following config in your configuration:
{
"awareness": {
"enabled": true
}
}
Storage Provider
The Awareness Service requires a backend storage provider to be configured so that channel state can be stored and shared across the servers in your cluster (if you have one).
Memory Provider
By default, the Awareness Service will use a memory
provider. This works for a standalone server instance where all requests are routing to the same process. The configuration essentially looks like this:
{
"awareness": {
"enabled": true,
"type": "memory",
"config": {}
}
}
Redis Provider
If you are running the Cloud CMS application server in cluster mode, you will want to configure the Redis provider, like this:
{
"awareness": {
"enabled": true,
"type": "redis",
"config": {
"host": "{host}",
"port": {port}
}
}
}
Where host
and port
point to your Redis Server.
Environment Variables
You can also configure the Awareness Service using the following environment variables:
CLOUDCMS_AWARENESS_TYPE
- eithermemory
orredis
You can configure the Awareness Redis Provider using the following settings:
CLOUDCMS_AWARENESS_REDIS_DEBUG_LEVEL
- eitherinfo
,warn
,error
ordebug
CLOUDCMS_AWARENESS_REDIS_ENDPOINT
- thehost
CLOUDCMS_AWARENESS_REDIS_PORT
- theport
Further, the Awareness Redis Provider will automatically draw from the following global Redis environment variables if you've set them:
CLOUDCMS_REDIS_DEBUG_LEVEL
- eitherinfo
,warn
,error
ordebug
CLOUDCMS_REDIS_ENDPOINT
- thehost
CLOUDCMS_REDIS_PORT
- theport