Constraints and considerations for flowing MQTT binary protocol over a Websocket, RFC 6455.
See also http://wiki.eclipse.org/Paho/Paho_Websockets
Making MQTT over Websockets inter-operable:
Must support WebSockets as defined by RFC 6455
Must use websocket binary frames.
This enables MQTT v3,1 per the specification to flow over websockets with no change to the MQTT packets
Must use "mqttv3.1" as the websocket protocol name.
This is applicable when creating the websocket: e.g. new WebSocket(wsurl, 'mqttv3.1')
The path portion of the url specified on the MQTT connect should be "mqtt"
For instance ws://m2m.eclipse.org:800/mqtt
. mqtt should be the default with the option for an alternative to be configured / specified
Open points for further discussion:
Should an MQTT packet be aligned with a WebSocket frame? Should MQTT Protocol messages be sent exactly one per frame or should the framing be arbitrary with multiple or partial MQTT messages per frame with no frame alignment.?