downloads | documentation | faq | getting help | mailing lists | licenses | wiki | reporting bugs | php.net sites | conferences | my php.net

search for in the

msg_set_queue> <msg_remove_queue
[edit] Last updated: Fri, 24 May 2013

view this page in

msg_send

(PHP 4 >= 4.3.0, PHP 5)

msg_sendEnvoie un message dans une file

Description

bool msg_send ( resource $queue , int $msgtype , mixed $message [, bool $serialize = true [, bool $blocking = true [, int &$errorcode ]]] )

msg_send() envoie le message message de type msgtype (qui DOIT être plus grand que 0) à la file de messages identifiée par queue.

Liste de paramètres

queue

msgtype

message

serialize

Le paramètre optionnel serialize contrôle la méthode d'envoi du message message. serialize vaut par défaut TRUE ce qui signifie que le message message sera linéarisé en utilisant le même mécanisme que celui qui est utilisé par les sessions, avant d'être envoyé à la file de message. Cela permet d'envoyer des tableaux et des objets complexes à d'autres scripts PHP, ou bien, si vous utilisez l'extension WDDX, d'échanger des messages avec des clients compatibles WDDX.

blocking

Si le message est trop grand pour être stocké par la file, votre script attendra jusqu'à ce qu'un autre processus lise dans la file un message, et libère assez de place pour votre message. C'est le mode bloquant : vous pouvez éviter ce mode en utilisant le paramètre blocking avec la valeur FALSE : dans ce cas, msg_send() retournera immédiatement FALSE si le message est trop gros pour la file. Il assignera alors au paramètre errorcode la valeur de MSG_EAGAIN, indiquant que vous devriez essayer d'envoyer à nouveau votre message, un peu plus tard.

errorcode

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Lors de l'émission réussie d'un message, la file est mise à jour comme ceci : msg_lrpid prend la valeur de l'identifiant de processus du processus appelant, msg_qnum est décrémenté de 1 et msg_rtime prend la date et l'heure courante.

Voir aussi



msg_set_queue> <msg_remove_queue
[edit] Last updated: Fri, 24 May 2013
 
add a note add a note User Contributed Notes msg_send - [5 notes]
up
1
Muffinman
6 months ago
When sending non-complex (serialize = false) messages to a program in C, you need to add the null character to the string (\0). Otherwise the previous message will be partially visible if it is longer than the current message. Took some kind help from comp.lang.php for me to figure that out. While it seems so obvious now, I thought I'd share it here.
up
0
michael dot NO dot SP dot AM dot cordover+php at gmail dot com
3 years ago
After about an hour of debugging I've discovered the meaning of the undocumented "PHP Warning: msg_send(): msgsnd failed: Invalid argument" ($errorcode = 13).

This occurred when the size of $message was larger than msg_qbytes (see msg_stat_queue() for how to determine and change msg_qbytes).
up
0
shepik at yandex dot ru
3 years ago
$msgtype used in msg_send function can be any positive integer.
up
0
bryan-boone at msn dot com
5 years ago
I think it is kinda lame why I cannot find out (easily) explicitly which types of messages are allowed and which ones are not.  Maybe we can start our own little list.  I know that strings work, and arrays do not.
up
0
webmaster at toolshed51 dot com
10 years ago
Sample sending webpage, see msg_receive for matching service

<?php
    $MSGKEY
= 519051;

   
$msg_id = msg_get_queue ($MSGKEY, 0600);

    if (!
msg_send ($msg_id, 1, 'Hi', true, true, $msg_err))
        echo
"Msg not sent because $msg_err\n";
?>

 
show source | credits | sitemap | contact | advertising | mirror sites