PHP 8.4.2 Released!

Stomp::send

stomp_send

(PECL stomp >= 0.1.0)

Stomp::send -- stomp_sendОтправляет сообщение

Описание

Объектно-ориентированный стиль (метод):

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

Процедурный стиль:

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

Отправляет сообщение брокеру сообщений (Message Broker).

Список параметров

link

Только для процедурного стиля: идентификатор соединения stomp, полученный из stomp_connect().

destination

Назначение для отправки сообщения.

msg

Сообщение для отправки.

headers

Ассоциативный массив, содержащий дополнительные заголовки (пример: receipt).

Возвращаемые значения

Функция возвращает true, если выполнилась успешно, или false, если возникла ошибка.

Примеры

Смотрите stomp_ack().

Примечания

Замечание:

Также может быть указан заголовок транзакции, означающий что приём сообщения должен являться частью именованной транзакции.

Подсказка

Stomp асинхронен по своей сути. Синхронная связь может быть реализована добавлением receipt-заголовка. Это заставит методы ничего не возвращать, пока сервер не подтвердит получение сообщения или не будет превышено время ожидания сообщения.

Добавить

Примечания пользователей 1 note

up
-4
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