実行時設定

プロトコルサポートおよびマッピング

SAM フレームワークを拡張して、他のメッセージングプロトコルや通信機構をサポートさせることができます。 新しいプロトコルや接続ライブラリのサポートを追加するには、 それをサポートするクラスを定義する必要があります。これは C 拡張モジュールあるいは PHP スクリプトとして作成します。また、"ファクトリ" スクリプトも作成しなければなりません。 サポートクラスは、SAMConnection クラスの全メソッドを実装する必要があります。 SAMConnection を継承してはいけません。ファクトリスクリプトはフレームワークからコールされ、 実装クラスのインスタンスを作成します。SAM がどのファクトリをコールするのかは、 "connect" の最初のパラメータで指定したプロトコルによって決まります。

デフォルトでは、connect でプロトコルに SAM_MQTT ("mqtt") を指定した場合に 組み込みの MQTT サポートを使用します。その他のプロトコルを指定した場合は XMS 拡張モジュールを使用します。 新たなプロトコルのサポートを追加したりデフォルトの挙動を変更したりするには、 php.ini の [sam] セクションにエントリを追加します。 デフォルトのマッピングは、以下のエントリと同等です。

[sam]
sam.factory.mqtt=mqtt
sam.factory.wmq=xms
sam.factory.wmq:client=xms
sam.factory.wmq:bindings=xms
sam.factory.wpm=xms
sam.factory.rtt=xms
これらの例でわかるように、エントリは "sam.factory.pppp=xxx" という形式になります。pppp の部分が connect コール時に指定するプロトコル文字列で、 xxx はファクトリ名のサフィックスです。 注意: SAM では、これらのプロトコルに対応する定数を定義しています。たとえば SAM_WMQ=wmqSAM_WPM=wpmSAM_RTT=rttSAM_MQTT=mqtt などとなります。

connect コールの際にこれを指定すると、 SAM はそのプロトコル名を php.ini のエントリから探し、対応するファクトリスクリプト sam_factory_xxx.php をコールします。 エントリが見つからなかった場合は、デフォルトは XMS となります。