msg_receive

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

msg_receiveEine Nachricht aus einer Message Queue auslesen

Beschreibung

msg_receive ( resource $queue , int $desiredmsgtype , int &$msgtype , int $maxsize , mixed &$message [, bool $unserialize = TRUE [, int $flags = 0 [, int &$errorcode ]]] ) : bool

msg_receive() liest die erste Nachricht der Message Queue gegeben durch queue vom Typ desiredmsgtype aus.

Parameter-Liste

queue

Message Queue Ressourcen-Handle

desiredmsgtype

Wenn desiredmsgtype gleich 0 ist, wird die erste Nachricht aus der Queue zurückgegeben. Wenn desiredmsgtype größer als 0 ist, wird die erste Nachricht genau diesen Typs zurückgegeben. Wenn desiredmsgtype kleiner als 0 ist, wird die erste Nachricht kleiner oder gleich dem absoluten Wert von desiredmsgtype zurückgegeben. Wenn keine passende Nachricht existiert, blockiert diese Funktion solange, bis eine passende Nachricht verfügbar ist. Durch das Setzen des Flags MSG_IPC_NOWAIT im flags Parameter kann das blockierende Verhalten verhindert werden.

msgtype

In diesem Parameter wird der Typ der empfangenen Nachricht gespeichert.

maxsize

Die maximale Größe der zu akzeptierenden Nachricht wird durch maxsize angegeben; Wenn die Nachricht in der Message Queue größer ist als dieser Wert schlägt die Funktion fehl (es sei denn, es wird das entsprechende Flag im flags Parameter gesetzt).

message

Die empfangene Nachricht wird in message gespeichert, es sei denn es tritt ein Fehler beim Empfang auf.

unserialize

Wenn dieser Wert auf TRUE gesetzt wird, wird die Nachricht behandelt, als wäre sie mit demselben Mechanismus serialisiert worden, wie das Session Modul. Die Nachricht wird deserialisiert und zurückgegeben. Dies erlaubt einen einfachen Empfang von Array und komplexen Objektstrukturen von anderen PHP Skripten. Wenn Sie den WDDX Serializer verwenden, erlaubt es den Empfang von einer WDDX kompatiblen Quelle.

Wenn unserialize FALSE ist, wird die Nachricht als binärsicherer String zurückgegeben.

flags

Der optionale flags erlaubt die Weitergabe von Flags an den low-level System Call zu msgrcv. Der Standardwert liegt bei 0, aber es können einer oder mehrere der folgenden Werte übergeben werden (durch binäres oder vereint).

Flag Werte für msg_receive
MSG_IPC_NOWAIT Wenn kein Wert des übergebenen desiredmsgtype in der Queue vorhanden ist, gibt die Funktion sofort zurück statt zu warten. Die Funktion schlägt fehl und gibt den Integer Wert entsprechend zu MSG_ENOMSG zurück.
MSG_EXCEPT Dieses Flag in Kombination mit einem desiredmsgtype größer als 0 sorgt dafür, dass die Funktion die erste Nachricht zurück gbit, die nicht gleich desiredmsgtype ist.
MSG_NOERROR Wenn die Nachricht länger als maxsize ist, wird durch Setzen diese Flags die Nachricht auf maxsize gekürzt, und die Funktion signalisiert keinen Fehler.

errorcode

Wenn die Funktion fehlschlägt, wird der optionale errorcode auf den Wert der System errno Variable gesetzt.

Rückgabewerte

Gibt bei Erfolg TRUE zurück. Im Fehlerfall wird FALSE zurückgegeben.

Bei erfolgreicher Ausführung wird die Message Queue Datenstruktur folgendermaßen aktualisiert: msg_lrpid wird auf die Process-ID des aufrufenden Prozesses gesetzt, msg_qnum wird um 1 dekrementiert, und msg_rtime wird auf die aktuelle Zeit gesetzt.

Siehe auch