Skip to main content

This documentation is for an older version of this product. See the latest version of this content.Opens in a new tab

MQTT アダプタの使用法

この章では、MQTT の受信アダプタおよび送信アダプタ EnsLib.MQTT.Adapter.InboundOpens in a new tab および EnsLib.MQTT.Adapter.OutboundOpens in a new tab の動作と、カスタムのビジネス・サービスおよびオペレーションでこれらを使用する方法について説明します。

MQTT 受信アダプタ

MQTT 受信アダプタは、ブローカ上のメッセージを購読し、そのサブスクリプションからメッセージを受信する役割を果たします。この受信アダプタは以下を実行します。

  • 初期化の際、%Net.MQTT.ClientOpens in a new tab クライアントを作成します。

  • タスクでは、以下を実行します。

    1. ブローカに接続されているかどうかを確認します。初めて呼び出された場合、または接続が失われている場合、アダプタは %Net.MQTT.ClientOpens in a new tab クライアントを使用してブローカに接続し、指定されたトピックを購読します。これはオプションでワイルドカードを含めることができます。

    2. %Net.MQTT.ClientOpens in a new tab クライアントを使用して、トピックとメッセージを受信します。

    3. 受信呼び出しがタイムアウトしていない場合、ビジネス・サービスの ProcessInput() メソッドを呼び出して、メッセージに渡します。

MQTT 受信アダプタを使用するビジネス・サービスの作成

このアダプタをプロダクションで使用するには、ここに記載されているように新しいビジネス・サービス・クラスを作成します。その後、“MQTT パススルー・ビジネス・サービスおよびオペレーションの構成と使用” で説明しているパススルー・サービスおよびオペレーションの場合と同様に、これをコンパイルし、プロダクションに追加して、構成します。新しいカスタムのメッセージ・クラスが必要な場合は、"プロダクションの開発" の “メッセージの定義” の説明のとおりにこれを作成します。

ビジネス・サービス・クラスの基本要件を以下に列挙します。

受信アダプタに関連する設定については、“MQTT パススルー・ビジネス・サービスおよびオペレーションの構成と使用” および “MQTT アダプタの設定” を参照してください。

以下の例は、ビジネス・サービス・クラスの全体的な構造を示しています。

Class EMQTT.NewService1 Extends Ens.BusinessService 
{
Parameter ADAPTER = "EnsLib.MQTT.Adapter.Inbound";

Method OnProcessInput(pInput As EnsLib.MQTT.Message, pOutput As %RegisteredObject) As %Status
{
   set tsc=$$$OK
   //your code here
   Quit tsc
}
}

OnProcessInput() メソッドの実装

カスタムのビジネス・サービス・クラスでは、OnProcessInput() メソッドのシグニチャは以下のようになります。

Method OnProcessInput(pInput As EnsLib.MQTT.Message, pOutput As %RegisteredObject) As %Status

MQTT 送信アダプタ

送信アダプタは、ブローカにメッセージを発行する役割を果たします。送信アダプタがメッセージで呼び出されると、以下を実行します。

  • ブローカへの接続がまだない場合、これを作成します。

  • 入力パラメータにトピックの値が含まれる場合は、これを使用します。トピックが提供されていない場合は、設定で指定されたトピックを使用します。

  • 入力パラメータまたは設定からのトピックを使用して、ブローカにメッセージを発行します。

FeedbackOpens in a new tab