MQTT over WebSocketの利用¶
本章では、CAP(EDM)のICE Message Router 互換機能でMQTT over WebSocketを有効化するための設定について記載します。
WebSocketの利用設定¶
1. WebSocketURL設定を追加¶
次の設定ファイルの mqtt.webSocketUrl
に ws://0.0.0.0:<ポート番号>
を設定します。
なお、mqtt.url
は必須項目となります。 mqtt.webSocketUrl
を指定する場合も未指定とすることはできません。
- /opt/nec/pf/ice/msgroutre_core/conf/core_config.json
(設定例)
{
"mqtt": {
"url": "mqtt+nio://0.0.0.0:1883",
"webSocketUrl": "ws://0.0.0.0:61614?websocket.maxBinaryMessageSize=104857600&allowLinkStealing=true"
},
"mongodb": {
"url":"mongodb://<ユーザ名>:<パスワード>@<MongoDBホスト名>:<ポート番号>/rawdata?authSource=admin"
}
}
2. サービスの再起動¶
設定変更後次のコマンドでサービスを再起動してください。
systemctl restart ice-message-router
Secure WebSocketの利用設定¶
1. SSL/TLS通信の設定追加¶
SSL/TLS通信設定を実施してください。
2. WebSocketURL設定を追加¶
次の設定ファイルの mqtt.webSocketUrl
に wss://0.0.0.0:<ポート番号>
を設定します。
なお、mqtt.url
は必須項目となります。 mqtt.webSocketUrl
を指定する場合も未指定とすることはできません。
- /opt/nec/pf/ice/msgroutre_core/conf/core_config.json
(設定例)
{
"mqtt": {
"url": "mqtt+nio://0.0.0.0:1883",
"webSocketUrl": "wss://0.0.0.0:61614?websocket.maxBinaryMessageSize=104857600&allowLinkStealing=true"
},
"mongodb": {
"url":"mongodb://<ユーザ名>:<パスワード>@<MongoDBホスト名>:<ポート番号>/rawdata?authSource=admin"
}
}
3. サービスの再起動¶
設定変更後次のコマンドでサービスを再起動してください。
systemctl restart ice-message-router
WebSocket/Secure WebSocket利用時のオプション¶
-
allowLinkStealing
既定値はfalseです。trueの場合、すでに接続されているクライアントIDと同じクライアントIDで接続要求があった際に、古い接続を切断して新しい接続を確立します。MQTT仕様通りの動作をさせるために、必ずtrueを設定してください。
(例) 接続しているエッジ機器がNW切断等で接続状況が途切れNW復旧時に再接続した際、本指定が行われているとNW切断前のコネクションを破棄し、再接続されたコネクションを有効とします。本指定がない場合、再接続されたコネクションを破棄する場合がありエッジ機器の再接続に失敗します。 -
websocket.maxBinaryMessageSize
WebSocket/Secure WebSocketの最大メッセージサイズを変更する場合は本オプションで必要な値を指定してください。EDM連携時の推奨値は104857600です。