Smart Manufacturing

Connected Worker Solutions with MQTT: Real-Time Instructions and Alerts

Tablets, smartwatches and line displays become far more useful when they receive live events. Learn connected worker use cases, the MQTT topic design and a browser client that receives tasks over secure WebSocket.

Connected worker illustration showing an operator with a tablet and smartwatch receiving MQTT alerts and work instructions on the shop floor
Run this on your own MQTT brokerGet a private, managed MQTT broker on the Free plan and start from ready-made code samples.
Try it free Code samples No card required

A connected worker is an operator, technician or supervisor whose devices receive the right information at the moment it matters: the next work instruction, a machine alarm, a quality hold or a request for help. This article covers the connected worker use cases that deliver value on the shop floor, how to structure the MQTT topics behind them, and a working browser client that receives tasks and sends acknowledgements over secure WebSocket.

What a Connected Worker Solution Actually Does

Most frontline workers in manufacturing still learn about problems by walking past them. A machine waits for material until someone notices, a maintenance technician is called by radio, and work instructions live in a binder at the station. Connected worker solutions close that gap by bringing live plant data to people instead of people to the data.

Typical capabilities:

  • Digital work instructions that change automatically with the active order or variant.
  • Targeted alerts: a machine stop goes to the responsible technician's watch, not to everyone.
  • Help requests and escalation: an operator taps "need material" and the request escalates if nobody accepts it within a few minutes.
  • Checklists and sign-offs: start-up checks, quality checks and changeovers recorded with who and when.
  • Two-way feedback: workers add reason codes, photo references or comments that flow back into the data.

The key word is real-time. A task list that refreshes every few minutes is not enough when a line stops; events must arrive within seconds.

Connected Worker Use Cases on the Shop Floor

Use case Event source Who receives it Response captured
Machine stop call PLC state change Line technician Accepted, arrived, resolved
Material replenishment Operator button or low-level sensor Logistics Accepted, delivered
Quality hold Test station failure pattern Quality engineer, line lead Hold confirmed, released
Changeover instructions MES order change Operator at station Each step confirmed
Safety or environment alert Gas sensor, temperature limit Everyone in an area Acknowledged
Shift handover Supervisor app Next shift supervisor Read confirmation

Many of these overlap with a digital andon system; the difference is that a connected worker setup routes events to individual devices and records each person's response.

Why MQTT Fits Connected Worker Apps

Frontline devices are mobile, battery-powered and frequently on patchy Wi-Fi. MQTT's design matches that environment:

  • Push, not poll. Devices hold one lightweight connection and receive events instantly, which saves battery and network compared with polling an API.
  • Works in the browser. Over MQTT over WebSocket, a plain web app on a tablet can subscribe without installing anything.
  • Retained messages give a device the current state (active order, open calls) the moment it reconnects.
  • Persistent sessions with session expiry let a device that walks through a dead zone receive QoS 1 messages queued while it was away.
  • MQTT 5 request/response with response topics and correlation data maps naturally to "task sent, task accepted".

Topic Design

Organize topics by plant area for broadcast events and by role or person for targeted tasks:

acme/plant1/assembly/line2/calls/open/<callId>     retained, cleared when resolved
acme/plant1/assembly/line2/instructions/station4   retained, current instruction
acme/plant1/workers/role/maintenance/tasks         tasks for anyone in a role
acme/plant1/workers/user/u1042/tasks               tasks for one person
acme/plant1/workers/responses                      accept, arrive, resolve events

A technician's tablet subscribes to its role, its own user topic and the open calls of its area. Clearing a retained call is done by publishing an empty retained message to the same topic, which removes it from every device at once.

A Browser Client over Secure WebSocket

The example below is a minimal connected worker client with MQTT.js v5. It connects over secure WebSocket on port 8084, subscribes to open calls and personal tasks, and publishes an acceptance with the worker's ID. It runs in any modern browser bundle (Vite, webpack) after npm install mqtt.

import mqtt from "mqtt";

const prefix = "connectmq/demo/cw-4f19";          // use your own random id
const workerId = "u1042";
const clientId = `cw-${workerId}-${Math.random().toString(16).slice(2, 8)}`;

const client = mqtt.connect("wss://broker.connectmq.com:8084/mqtt", {
  clientId,
  protocolVersion: 5,
  clean: false,
  properties: { sessionExpiryInterval: 1800 },   // keep queued QoS 1 messages for 30 minutes
  reconnectPeriod: 2000,
});

const openCalls = new Map();

client.on("connect", () => {
  client.subscribe(
    [`${prefix}/line2/calls/open/+`, `${prefix}/workers/user/${workerId}/tasks`],
    { qos: 1 }
  );
});

client.on("message", (topic, payload) => {
  if (topic.includes("/calls/open/")) {
    const callId = topic.split("/").pop();
    if (payload.length === 0) {
      openCalls.delete(callId);                     // call resolved, retained message cleared
    } else {
      openCalls.set(callId, JSON.parse(payload.toString()));
    }
    render();
  } else {
    const task = JSON.parse(payload.toString());
    navigator.vibrate?.(300);
    console.log("New task:", task);
  }
});

export function acceptCall(callId) {
  client.publish(
    `${prefix}/workers/responses`,
    JSON.stringify({ callId, workerId, action: "ACCEPTED", ts: Date.now() }),
    { qos: 1 }
  );
}

function render() {
  console.table([...openCalls.entries()].map(([id, c]) => ({ id, ...c })));
}

Raise a test call from the command line and watch it appear on the device; then clear it with an empty retained message:

mosquitto_pub -h broker.connectmq.com -p 1883 -i cw-plc-4f19 -r -q 1 \
  -t "connectmq/demo/cw-4f19/line2/calls/open/C-001" \
  -m '{"type":"MACHINE_STOP","station":"press2","reason":"jam"}'

mosquitto_pub -h broker.connectmq.com -p 1883 -i cw-plc-4f19 -r -q 1 -n \
  -t "connectmq/demo/cw-4f19/line2/calls/open/C-001"

The public MQTT test broker supports QoS 0 to 2 and session expiry up to 30 minutes, which is enough to try reconnect behaviour. Remember that its public area is readable by everyone, so never send real names or plant data there.

Rollout Checklist for Connected Worker Projects

  1. Start with one painful process, usually machine stop calls or material calls, and measure response time before and after.
  2. Involve operators early. If an alert is noise to them, it will be ignored or muted.
  3. Route by role and area, not to everybody. Broadcasts create alert fatigue fast.
  4. Design escalation: if nobody accepts a call within a defined time, send it to the next level.
  5. Make devices recover silently. Use retained state and persistent sessions so a reconnect needs no user action.
  6. Use unique credentials per device or per app instance, over TLS or secure WebSocket only.
  7. Record responses in a database for response-time analysis and continuous improvement.
  8. Plan for shared devices: a shift login decides which user topic a station tablet subscribes to.

Measuring Whether It Works

A connected worker project should prove its value with numbers the plant already cares about. Because every call and response is an MQTT event, you can measure without extra effort:

  • Time to accept: from the call being raised to a person accepting it.
  • Time to arrive: from acceptance to the technician confirming arrival at the station.
  • Time to resolve: from the call to the line running again, which ties directly to downtime.
  • Escalation rate: how often calls go unanswered at the first level, a sign of under-staffing or poor routing.
  • Calls per shift and per station: a recurring call at the same station is a problem to fix, not just to respond to.

Review these with the team every week during the pilot. The goal is not faster running between fires but fewer fires, so feed recurring causes into your improvement process.

Scaling Connected Worker Apps on ConnectMQ

Every tablet, watch and line display holds its own connection, so connection count grows quickly. ConnectMQ is a fully managed MQTT service that provides secure WebSocket on port 8084 with a Let's Encrypt certificate, so browser apps connect without certificate workarounds. The free Serverless plan covers a pilot of up to 25 connections, the paid Serverless plan scales to 1,000 connections with QoS 2 and shared subscriptions, and Dedicated clusters isolate larger deployments. Escalation logic and response logging run in your own services, such as a Node-RED flow or a small Node.js worker, connected as ordinary clients.

For the full plant context, see the smart manufacturing guide, and the cloud MQTT broker overview explains how a hosted broker connects plant and mobile devices securely.

Connect Your Workers with ConnectMQ

Create a free Serverless broker at app.connectmq.com with no credit card, copy the generated username, password and client ID into the browser client above and push your first live call to a tablet today.

Frequently Asked Questions

What devices can act as connected worker devices?

Tablets, smartphones, smartwatches, rugged handhelds and large line displays all work. Anything with a modern browser can use MQTT over secure WebSocket; native apps can use an MQTT library directly.

How do workers receive messages they missed while offline?

Use a persistent session with a session expiry interval and QoS 1 subscriptions, so the broker queues messages while the device is disconnected. Retained messages provide the current state on reconnect.

Should every device have its own credentials?

Yes. Unique credentials and client IDs per device or app instance make it possible to revoke a lost tablet without affecting others and to trace who sent which response.

Is a connected worker platform the same as an andon system?

They overlap. Andon makes problems visible on the line; a connected worker solution also routes tasks to specific people and records their responses.

Related articles

OEE vs TEEP vs OOE: Which Metric Should You Use?

OEE, OOE and TEEP share the same performance and quality factors but measure against different time bases. This comparison works through one example and lists the MQTT signals each metric needs.

7 min read

All articles →

Your private MQTT broker is a few clicks away

Create an account, get your broker credentials and connect your first device — no servers to install, patch or scale.