PHP 8.4.0 RC4 available for testing

Stomp::send

stomp_send

(PECL stomp >= 0.1.0)

Stomp::send -- stomp_sendSends a message

説明

オブジェクト指向型 (method):

public Stomp::send(string $destination, mixed $msg, array $headers = ?): bool

手続き型:

stomp_send(
    resource $link,
    string $destination,
    mixed $msg,
    array $headers = ?
): bool

Sends a message to the Message Broker.

パラメータ

link

手続き型のみ: stomp_connect() が返す stomp リンク ID。

destination

Where to send the message

msg

Message to send.

headers

追加のヘッダ (例: receipt) を含む連想配列。

戻り値

成功した場合に true を、失敗した場合に false を返します。

See stomp_ack().

注意

注意:

トランザクションヘッダを指定し、そのメッセージがトランザクションの一部であることを示します。

ヒント

Stomp は本来非同期です。同期通信を実装するには receipt ヘッダを追加します。これを追加すると、サーバーがメッセージを受領するかタイムアウトに達するまではメソッドが何も返さないようになります。

add a note

User Contributed Notes 1 note

up
-3
james dot mk dot green at gmail dot com
13 years ago
Without a receipt header your application will fire messages potentially faster than the broker can receive them at. The broker may issue failure notices however STOMP being asynchronous your client won't get to see it.

Without a receipt ActiveMQ (5.5.0) with ProducerFlowControl turned on drops messages (even persistent ones) and my application knows nothing about it (send() returned true). With receipt header specified the STOMP library handles the wait for the receipt acknowledgement for you - you are essentially automatically throttled.
To Top