RawSocket Transport

Quick Links: Transport Endpoints

The RawSocket Transport implements WAMP-over-RawSocket and supports TCP/TLS as well as Unix domain socket, each combined with JSON and MsgPack for serialization.

“RawSocket” is an (alternative) transport for WAMP that uses length-prefixed, binary messages - a message framing different from WebSocket. Compared to WebSocket, “RawSocket” is extremely simple to implement.

as well as connecting transports

  • Connecting RawSocket Transport Configuration

  • Connecting RawSocket Transport Example

    RawSocket can run over TCP, TLS or Unix domain socket. When run over TLS on a (misused) standard Web port (443), it is also able to traverse most locked down networking environments (unless Man-in-the-Middle intercepting proxies are in use). However, it does not support compression or automatic negotiation of WAMP serialization (as WebSocket allows). Perhaps most importantly, RawSocket cannot be used with Web browser clients.

Configuration

Crossbar.io supports both listening as well as connecting WAMP-over-RawSocket transports.

Listening transports are used with routers to allow WAMP clients connect to Crossbar.io, whereas connecting transports are used with containers to allow hosted components to connect to their upstream router.

Listening Transports

Listening transports are used with routers to allow WAMP clients connect to Crossbar.io. The available parameters for RawSocket listening transports are:

Parameter

Description

id

The (optional) transport ID - this must be unique within the router this transport runs in (default: “transportN” where N is numbered starting with 1)

type

Must be “rawsocket” (required)

endpoint

A network connection for data transmission - see Transport Endpoints (required)

serializers

List of serializers to use from “json” or “msgpack” (default: all available)

max_message_size

Maximum size in bytes of incoming RawSocket messages accepted. Must be between 1 and 64MB (default: 128kB)

auth

Authentication to be used for this Endpoint - see Authentication

debug

Enable transport level debug output. (default: false)

Connecting Transports

Connecting transports are used with containers to allow hosted components to connect to their upstream router. The available parameters for RawSocket connecting transports are:

Parameter

Description

id

The (optional) transport ID - this must be unique within the router this transport runs in (default: “transportN” where N is numbered starting with 1)

type

Must be “rawsocket” (required)

endpoint

A network connection for data transmission - see Transport Endpoints (required)

serializers

List of serializers to use from “json” or “msgpack” (default: all available)

debug

Enable transport level debug output. (default: false)

Example

Example - Listening Transport

Here is an example Transport that will run WAMP-over-RawSocket on a Unix domain socket using MsgPack serialization:

{
   "type": "rawsocket",
   "serializers": ["json", "msgpack"],
   "endpoint": {
      "type": "unix",
      "path": "/tmp/mysocket1"
   }
}

Example - Connecting Transport

Write me.