The Reflector Server

The reflector server is the central component of It's where all devices connect to, and it controls who gets access to which devices.


The connections between the devices and the reflector server and also between the client (web browser) and reflector server are secured using TLS.


The reflector server acts as a transparent, caching proxy for devices, typically caching images, stylesheets and JavaScript files. This is quite useful if a device is connected using a low-bandwidth network like GPRS, as it significantly speeds up the loading time of the device's web pages.

Reflector Server Login


The reflector typically runs on a virtual Linux cloud server. Multiple instances can be run in a load-balancing setup to reliably handle even very large numbers of simultaneously connected devices and user sessions.


The reflector server can be customized and extended via JavaScript (Ajax) or C++ plugins. It optionally supports LDAP for user authentication and provides REST and SOAP APIs for integration with customer-specific or third-party applications.

The Dashboard

After signing in to the reflector server, the first thing you see is the Dashboard. The Dashboard shows all devices available to you. Move the mouse pointer over the various items on the following screen shot to see more information.

Home Account Sign Out Filter Controls Device Name and Description Device Status Protocol IP Address Last Connected Buttons Page Controls Bar Dashboard

Accessing The Device Website

Every device connected to the reflector server is addressable by its own permanent URL. The URL can be bookmarked. When the bookmark is opened at a later time, the reflector server will first require the user to sign in, before granting access to the device.


Device Properties

The Device Properties page displays information about a device. Every device can have a number of properties. There are system properties and user-defined properties. User-defined properties can be used to attach application-specific information to a device. Properties can also be queried or modified using the REST API. This makes them quite useful for use in device management applications.

Each device is uniquely identified by an ID. This can be a UUID, or another, application-specific identifier. Furthermore, every device belongs to a domain. Domains are identified by UUIDs and are used to associate devices with users. Every user can have access to one or more domains. In addition, users can also be granted access to specific devices from other domains.

Device Properties


The REST API provides full access to all device management features of the reflector server. Using the API, devices can be created and deleted, device properties can be retrieved, modified, added and deleted, and available devices can be queried.

User authorization is done either using HTTP Basic Authentication (over HTTPS), or using session-based authentication, giving maximum flexibility.

The API supports Cross-Origin Resource Sharing (CORS), so it can be directly used from Ajax-based web applications. This makes it possible to build fully customized and custom-branded web user interfaces for the reflector server.

Of course the API can be invoked from any application that supports REST and JSON, including server- and cloud applications, as well as mobile and tablet apps.


WebTunnelAgent And Device SDK

Device SDK

The WebTunnelAgent application is used to connect a device to the reflector server using the WebTunnel protocol, a custom protocol based on the WebSocket specification. The WebTunnelAgent application usually runs directly on the device, but it can also run on a separate device (e.g. a router or gateway), or desktop system.

The WebTunnelAgent is part of the Device SDK. The SDK is available in source code, written in portable C++, based on the POCO C++ Libraries and can be built for embedded Linux, Windows Embedded CE and other embedded operating systems.