Skip to main content

Clients

Clients

Clients requests allow you to retrieve a list of clients connected at a point in time, and their details.

The request looks like this:

{
"clients": {
//array of streamnames to accumulate. Empty (or left out) means all.
"streams": ["streama", "streamb", "streamc"],
//array of protocols to accumulate. Empty (or left out) means all.
"protocols": ["HLS", "HSS"],
//list of requested data fields. Empty (or left out) means all.
"fields": ["host", "stream", "protocol", "conntime", "position", "down", "up", "downbps", "upbps"],
//unix timestamp of measuring moment. Negative means X seconds ago. Empty (or left out) means now.
"time": 1234567
}
}
//Or, when requesting multiple clients responses simultaneously:
{
"clients": [
{},//request object as above
{}//repeat the structure as many times as wanted
]
}

Since MistServer collects data continuously and requests might be segmented or sporadic, for most accurate results requestdata slightly in the past (e.g. 20-30 seconds in the past). The more current the data is, the higher the chance that data is incomplete.

The calls are responded to as follows:

{
"clients": {
//unix timestamp of data. Always present, always absolute.
"time": 1234567,
//array of actually represented data fields.
"fields": [...]
//for all clients, the data in the same order as the "fields" field.
"data": [[x, y, z], [x, y, z], [x, y, z]]
}
}

In case of the second method, the response is an array of responses like this, in the same order as the requests.

The fields represent:

  • host: IP address of connected user

  • stream: Stream name user is connected to

  • protocol: Protocol user is using to connect

  • conntime: Amount of seconds connection has been active

  • position: Current playback position in seconds user is at in the stream

  • down: Total bytes transferred down

  • up: Total bytes transferred up

  • downbps: Current bytes per second down

  • upbps: Current bytes per second up