.crossbar config.json について - SonyCSL/Kadecot-JS GitHub Wiki

.crossbar/config.json について

{
  "version": 2,
  "controller": {},
  "workers": [{
    "type": "router",
    "realms": [{
      "name": "v1",
      "roles": [{
        "name": "anonymous",
        // 権限を設定できる
        "permissions": [{
          "uri": "*",
          "allow": {
            "call": true,
            "register": true,
            "publish": true,
            "subscribe": true
          }
        }, {
          // `wamp.*`は通常すべて禁止にする
          "uri": "wamp.*",
          "allow": {
            "call": false,
            "register": false,
            "publish": false,
            "subscribe": false
          }
        }]
      }, {
        "name": "provider",
        "permissions": [{
          "uri": "*",
          "allow": {
            "call": true,
            "register": true,
            "publish": true,
            "subscribe": true
          }
        }, {
          "uri": "wamp.*",
          "allow": {
            "call": true,
            // `wamp.*`から始まるものは登録させない
            "register": false,
            "publish": true,
            "subscribe": true
          }
        }]
      }]
    }],
    // どのように配信するか設定
    "transports": [{
      "type": "web",
      "endpoint": {
        "type": "tcp",
        "port": 41314
      },
      "paths": {
        "ws": {
          "type": "websocket",
          // 認証方式を設定
          "auth": {
            "ticket": {
              "type": "static",
              "principals": {
                // key(kadecot-provider)がauth_idになる
                "kadecot-provider": {
                  // ticketはパスワードのようなもの
                  "ticket": "KADECOT_PROVIDER",
                  "role": "provider"
                }
              }
            },
            "anonymous": {
              "type": "static",
              "role": "anonymous"
            }
          }
        }
      }
    }]
  }, {
    // 一緒に起動するものを設定
    "type": "guest",
    "executable": "node",
    "arguments": ["main.js"],
    "options": {
      "workdir": "../"
    }
  }]
}