sam-php-configuration-8

  • Installing/Configuring
  • Runtime Configuration

  • Runtime Configuration
  • Runtime Configuration

    Runtime Configuration

    Protocol support and mapping

    The SAM framework can be extended to support other
    messaging protocols and connection mechanisms. To add support for a
    new protocol or connection library a support class has to be
    defined, either as a C extension or as a PHP script, and a
    “factory” script must be created. The support class must implement
    all the methods of the SAMConnection class though it should not
    inherit from SAMConnection. The factory script will be called by
    the SAM framework to create an instance of the implemented class.
    The way SAM chooses which factory to call is based on the protocol
    specified as the first parameter of the “connect” call.

    By default the built-in MQTT support will be used
    if a connect call specifies a protocol of SAM_MQTT (“mqtt”), for
    any other protocol SAM will attempt to use the XMS support
    extension. To add support for additional protocols or to modify the
    default behavior entries may be added to php.ini in the [sam] section. The default mapping
    is equivalent to the following entries:

    [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
    

    As can be seen from these examples the entries take the form of
    “sam.factory.pppp=xxx” where pppp is the protocol string specified
    on the connect call and xxx is a factory suffix. Note: SAM defines
    constants for these protocol strings such that
    SAM_WMQ=wmq, SAM_WPM=wpm, SAM_RTT=rtt,
    SAM_MQTT=mqtt, etc.

    When identifying the support code to use on a
    connect call SAM looks up the protocol name in the php.ini entries and then invokes a factory script
    named sam_factory_xxx.php. If no entry
    is found the support will default to XMS.