Skip to main content

WebSocket, MQTT, Socket.IO, and IOSignal

These technologies are not interchangeable layers.

TechnologyMain roleApplication/server responsibilities
WebSocketBidirectional client–server messagesIdentity, routing, connection-state and reconnection policy
MQTTBroker-based publish/subscribe with hierarchical topicsBroker authentication, authorization, TLS, and QoS settings
Socket.IOIts own protocol with events, rooms, and reconnectionRoom rules, application handlers, and permissions
IOSignalChannel, CID, and HOME CHANNEL message routingAddresses, authentication, quotas, and application conventions

An MQTT client cannot connect directly to an IOSignal server. A plain WebSocket client is not a Socket.IO client. IOSignal tags are not an MQTT topic tree.

Browsers and devices​

MQTT can run in browsers over WebSocket; brokers such as Mosquitto can expose a WebSocket listener. IOSignal uses WebSocket for browsers and CongSocket over TCP for Arduino, with the server relaying between transports.

Authentication and encryption​

WebSocket can use TLS (wss://) and HTTP-based authentication. Its protocol handshake has a different purpose from user login. See RFC 6455 security considerations.

MQTT authentication, access control, and TLS depend on the broker and configuration; see Mosquitto configuration. See the Socket.IO introduction for its protocol model.

TLS resource use depends on board, implementation, and configuration; PSK modes do not always require certificate-based public-key authentication. For IOSignal's pre-shared-key approach, see boho and its limits.