In comparison to send() method skips routing mechanisms and tries to push message directly to receiver, therefore
this method should be used with caution.
This method will push multiple messages separately. If any of the callback handlers are set, then message(s) will
be treated as Request(s) and Channel will asynchronously await response(s). On the other hand, if none are set,
then message(s) will be send without creating handler making the process faster and better memory-optimized.
However, in that case Channel will not be able to process any returned values.
Timeout works only for requests and represents number of seconds after which handler will automatically cancel.
Flags might be one of:
Channel::MODE_STANDARD - sends message if both sender and receiver are online.
Channel::MODE_BUFFER_OFFLINE - works in similar way as MODE_STANDARD, but also enables buffering messages in case
that sender is offline.
Channel::MODE_BUFFER_ONLINE - works in similar way as MODE_STANDARD, but also enables buffering messages in case
that receiver is offline.
Channel::MODE_BUFFER - sends message if both sender and receiver are online or buffers it if one of them is
offline.
public push ( string | string[] $name, string | string[] | Kraken\Channel\Protocol\ProtocolInterface $message, integer $flags = Channel::MODE_DEFAULT, callable $success = null, callable $failure = null, callable $cancel = null, float $timeout ) : |
||
$name | string | string[] | |
$message | string | string[] | Kraken\Channel\Protocol\ProtocolInterface | |
$flags | integer | |
$success | callable | |
$failure | callable | |
$cancel | callable | |
$timeout | float | |
Результат |