A client session has a number of properties associated with it.
Properties are key-value pairs. Both the key and the value are case sensitive.
Session properties provide a powerful way for client sessions to target actions at a
specific session or set of sessions whose session properties match a given criteria.
Client sessions can use session filtering to select a set of client sessions upon
which to perform one of the following actions:
For more information, see Session filtering
A client session with the appropriate permissions can also view all of the session
properties and modify the user-defined session properties. For more information, see Working with session properties.
Fixed properties are set by the Diffusion server
when a client opens a session
with it. Fixed property keys are prefixed by a dollar sign ($). The fixed session
- The session identifier.
- The security principal the session uses to connect to the Diffusion server.
- Authorization roles assigned to the session, represented as quoted strings (for example "client", "topic_control").
For more information, see Role-based authorization.
- The client type of the session. For more information, see Client types.
- The transport the client session uses to connect to the Diffusion server. For more information, see Client types.
- The name of the Diffusion server that the client connects
- The name of the connector on which the client connected to the Diffusion server.
- The two letter country code for the country where the client's internet
address is located. The value is uppercase.
- The two letter language code for the most common language of the country
where the client's internet address is located. The value is
- The session's IP address represented as a string.
- The client session's geographic latitude, if this can be
- The client session's geographic longitude, if this can be
- The MQTT client identifier. Only set for MQTT sessions. If present, the value of
the $ClientType session property will be MQTT.
- The client session's start time in milliseconds since the epoch.
An authentication handler that allows the client session to connect can assign additional properties to the session.
The keys of these properties are case sensitive, non-empty strings, and cannot contain any of ' ', '\t', '\r', '\n', '"', ''', '(', ')'
A client can propose user-defined session properties when it opens a session. You can configure the
system authentication handler to accept client-proposed properties. You can also write an authentication handler
with the Authenticator interface to accept client-proposed properties and apply them to the session.