WebSocket

WebSocket provides full-duplex message framing over a single long-lived TCP connection.

omniload consumes WebSocket frames via mq-bridge.

URI format

websocket+mqb://0.0.0.0:8080

This source is a server, not a client. mq-bridge binds the authority and ingests the frames that clients push to it. The authority is therefore a plain listen address with no ws:// scheme, and omniload does not dial out to an existing WebSocket server.

--source-table supplies the HTTP path the server serves (e.g. /ingest). Common options: backlog, routed_queue_capacity, message_id_header, execution_mode. See mq-bridge for the full option reference and delivery semantics.

Because a listening server has no end-of-stream, the run is bounded by the transfer parameters rather than by the source draining: max_messages caps how many frames are ingested and idle_timeout_ms decides how long to wait for the next one before finishing. Set both deliberately.

Sample command

omniload ingest \
    --source-uri 'websocket+mqb://0.0.0.0:8080?max_messages=1000&idle_timeout_ms=30000' \
    --source-table '/ingest' \
    --dest-uri 'duckdb:///websocket.duckdb' \
    --dest-table 'dest.events'