System Topics
The shiftr.io platform offers various system topics that allow clients to inspect the network and obtain valuable metadata.
Events
A MQTT subscription to $events
will put the client in a special mode where all interactions with the network are received as JSON encoded objects under the $events
topic. A subscription to $events
will temporarily shadow other subscriptions as all messages are received as events.
Connected
{
"id": "5bf2c2147b0a6769f6d287c4",
"type": "connected",
"connection": {
"id": "5bda2ea6e334550009ab27f8",
"name": "test",
"read_only": false
}
}
Subscribed
{
"id": "5bf2c2147b0a6769f6d287c6",
"type": "subscribed",
"subscription": {
"topic": "foo",
"qos": 1,
"root_slash": false,
"connection_id": "5bda2ea6e334550009ab27f8"
}
}
Published
{
"id": "5bf2c2147b0a6769f6d287c8",
"type": "published",
"message": {
"topic": "foo",
"payload": "Y29vbA==",
"qos": 0,
"retained": false,
"connection_id": "5bda2ea6e334550009ab27f8"
}
}
Unsubscribed
{
"id": "5bf2c2147b0a6769f6d287ca",
"type": "unsubscribed",
"unsubscription": {
"topic": "foo",
"connection_id": "5bda2ea6e334550009ab27f8"
}
}
Disconnected
{
"id": "5bf2c2147b0a6769f6d287cc",
"type": "disconnected",
"disconnection": {
"id": "5bda2ea6e334550009ab27f8",
"name": "test"
}
}
Errored
{
"id": "5bf2c2147b0a6769f6d287ce",
"type": "errored",
"error": {
"code": "invalid-topic",
"topic": "foo/+",
"connection_id": "5bda2eeee334550009ab85b0"
}
}
Triggered
{
"id": "5bf2c2147b0a6769f6d287d0",
"type": "triggered",
"action": {
"type": "close",
"target_id": "5bda2cb9e334550009a88e57",
"connection_id": "5bda2eeee334550009ab85b0"
}
}
Actions
A HTTP POST request or a MQTT publication to $action
with a JSON encoded object will instruct the broker to perform various actions.
Close
{
"type": "close",
"target_id": "5bda2cb9e334550009a88e57"
}
Info
A HTTP GET request or a MQTT subscription to $info
will return a JSON encoded object that includes various information about the current state of the network.
{
"topics": ["foo", "bar/baz"],
"connections": [
{
"id": "5bda2cb9e334550009a88e57",
"name": "test",
"read_only": false
}
],
"subscriptions": [
{
"topic": "foo",
"qos": 1,
"root_slash": false,
"connection_id": "5bda2cb9e334550009a88e57"
}
]
}
Rate
A HTTP GET request or a MQTT subscription to $rate
will return a JSON encoded object that includes information about the current rate limit:
{
"scope": "user",
"limit": 1500,
"remaining": 1499,
"period": 60,
"retry_in": 0,
"reset_in": 1
}