Stomp::send
stomp_send
(PECL stomp >= 0.1.0)
Stomp::send -- stomp_send — Sends a message
说明
面向对象风格 (method):
过程化风格:
Sends a message to the Message Broker.
参数
-
link
-
仅对过程化样式:由 stomp_connect() 返回的 stomp 连接标识符。
-
destination
-
Where to send the message
-
msg
-
Message to send.
-
headers
-
关联数组包含附加的头信息(例如: receipt)。
返回值
成功时返回 true
, 或者在失败时返回 false
。
范例
See stomp_ack().
注释
注意:
A transaction header may be specified, indicating that the message acknowledgment should be part of the named transaction.
小技巧
Stomp is inherently asynchronous. Synchronous communication can be implemented adding a receipt header. This will cause methods to not return anything until the server has acknowledged receipt of the message or until read timeout was reached.

User Contributed Notes 1 note
james dot mk dot green at gmail dot com ¶
10 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.