Minnow Server (Embedded HTTPS & WebSocket Server)

Embedded HTTPS & WebSocket Server

Minnow Server, a super small and fast embedded HTTPS - secure WebSocket server, enables small microcontrollers with no external memory to act as a real-time web server. The super small and secure Minnow Server is ideal for devices that are too small for standard web applications or our Barracuda Embedded Web Server.

How does it work?

Minnow Server incorporates the HTML5 WebSocket specification, which lets JavaScript applications open a persistent, bidirectional, full-duplex and asynchronous communication channel with the embedded device. Minnow Server enables you to develop the latest real-time web applications for your device.

Download

Real-Time Web Server for Tiny Microcontrollers

Embedded WebSocket Server

The Minnow Server is ideal for most modern microcontroller-based systems, enabling you to web-enable even the tiniest device.

Web applications for Minnow Server are designed in JavaScript and can load on demand from any of the following:

  • the device
  • the browser's local file system
  • directly from a browser, such as a Chrome browser app
  • a cloud server

You decide where to store the web presentation logic by selecting one or all of the above options. Of course, the benefit of storing the web presentation logic off device is that it saves considerable space on the device and lets you easily modify the application without upgrading the firmware.

Availability:

The Minnow Server is included in the SharkSSL server package. The ZIP file plugin is available at an additional cost.

Application Areas:

The Minnow Server is primarily designed for small micro controllers such as the Cortex-M3/M4 family, where internal memory is limited and using a full application server, such as the Barracuda Application Server, is not an option. Minnow Server is not recommended for larger embedded systems, where a full application server can fit into the memory.

Please send us an email if you have any questions on what applications best fit Minnow Server and when to use it.

How the WebSocket Protocol Works

WebSocket Upgrade

The WebSocket protocol defined in RFC 6455 specifies how a standard HTTPS request/response pair can be upgraded to a secure and persistent full-duplex connection. HTML5 WebSocket-based applications enable real-time communication while placing less burden on the servers.

Optional ZIP File System Plugin

In addition to being a WebSocket server, Minnow Server includes an embedded HTTP server, which makes it possible for the browser to load the web presentation logic on demand from the device. Web presentation logic, including JavaScript, has a tendency to be large, so the data may be too big for your microcontroller's flash memory. Real Time Logic provides an optional ZIP file-system plugin for the Minnow Server.

Compressed web applications are typically only one-third of the original size and are loaded on demand by the browser without needing to be uncompressed on the device. The web pages are extracted from within the ZIP file and sent "as is" to the browser which then uncompresses the data received from the server.

WebSocket LED Demo Program

We provide a WebSocket LED demo program that functions similarly to our M2M-LED demo. The Minnow Server LED demo differs from the M2M-LED demo in that the Minnow Server LED demo does not use an intermediary (also known as a broker) between the human operator and the device. Instead, Minnow Server's communication offers a direct WebSocket connection between the browser and the device.

The WebSocket communication between the browser and the device is similar to the binary LED control protocol designed for the M2M-LED demo. JavaScript engines in modern browsers are good at managing binary data, and the JavaScript API provides many library functions that simplify working with binary data. A binary protocol is much more efficient and less resource hungry on the device side.

The demo is included in the SharkSSL Tutorial.