やっぱりmanは見ないとダメ、ということで、まずはmosquitto.conf
を紐解いています。
原文はこちらman mosquitto.conf(5)
つらつらとながめていると、昨日疑問に思っていた部分が書かれていました。
mount_point topic prefix
This option is used with the listener option to isolate groups of clients.
When a client connects to a listener which uses this option, the string argument is attached to the start of all topics for this client. This prefix is removed when any messages are sent to the client. This means a client connected to a listener with mount point example can only see messages that are published in the topic hierarchy example and above.
さらに、mosquitto.conf
のデフォルトでは、この部分が
|
|
となっています。
「クライアント」と「リスナー」という言葉が出てきて???な感じです。。。。
The network ports that mosquitto listens on can be controlled using listeners.
とあるので、ブローカーがパブリッシャからの聞き耳を立てるポートをコントロールするためのものが「リスナー」なんでしょうか。どうも、そうみたいですね。
「リスナー」は、MQTTのプロトコルを通信するためのポートに、この設定ファイルで設定できるようなメソッドを組み込んだオブジェクトみたいな感じでしょうか。
その「リスナー」の部分、mosquitto.conf
では
|
|
となっているので、ポートを「リスナー」として設定して開けば、その一つ一つに個別のマウントポイントを設定できる、という感じですかね。でもサブスクライバの方はどうなるんでしょ?サブスクライブできるトピックを限定できるのかなあ。そうか、ポート毎(リスナー毎)にマウントポイントを設定できればそのポート(リスナー)のサブスクライバは全部そのマウントポイントしか見えない、ってことか。パブリッシャも同様。
listenerごとにipアドレスやホストネームをバインドできるのはそのためですかね。とすれば、IPアドレスは複数設定できなきゃいけませんね。。。。
その他セキュリティ設定のところでも、特定のトピックの読み書きが可能なように設定できたりするようです。
そもそも「クライアント」はサブスクライバとパブリッシャの両方のことを意味するのかしら???
奥深し。。。。。