In your Server code you need to publish your messages to the anonymous exchange (which I'm not sure is possible with the library you are using).
In your publish call use the queue name that you got in the reply_to property. On Thu, Jun 21, 2012 at 11:48 AM, Denis <[email protected]> wrote: > Sorry for me writing here: I can't figure out how to use mailing list for > replies =/ > > > My Client.php declares callback queue php-object as following: > > $callbackQueue = new \AMQPQueue($channel); > $callbackQueue->setFlags(AMQP_EXCLUSIVE); // set EXCLUSIVE flag > $callbackQueue->declare(); > > After that I pass it's name at an envelope to server like this > ($callbackQueue->getName at 'reply_to') > > $exchange->publish( > json_encode(array('process me!')), > 'temp_action', > AMQP_MANDATORY, > array( > 'reply_to' => $callbackQueue->getName(), // pass callback queue name > 'correlation_id' => $correlationId > ) > ); > > > And my Server.php creates a new Queue php-object (in an anonymous function > that handles consuming) as following: > > $callbackQueue = new \AMQPQueue($channel); > $callbackQueue->setName($envelope->getReplyTo()); > $callbackQueue->setFlags(AMQP_EXCLUSIVE); // set EXCLUSIVE flag > > Right after that moment I'm trying to bind newly created $callbackQueue > object to an exchange - and this causes blocking issue. > > > I'm not sure which exact options are different (exclusive looks for me to > be the only flag I set in both cases). > Setting name in Server.php is necessary and name is taken from envelope's > 'reply_to' setting. > > As far as I can see no extra declaration of callback queue is happening on > a Server.php side. (Although tempQueue Server consumes messages from is > extra declared, but this is made for server to be able to listen that queue > even when before any client exists) > > On Thursday, June 21, 2012 12:33:42 PM UTC+4, Alvaro Videla wrote: > >> While not using the same library here you have the official tutorials >> ported to PHP >> >> https://github.com/rabbitmq/**rabbitmq-tutorials/tree/**master/php<https://github.com/rabbitmq/rabbitmq-tutorials/tree/master/php> >> >> The problem in your code is that you declare queues with different >> options. >> >> So as one reply say, if you declare queue A as durable, then every other >> declaration of that queue must be durable. The same for the exclusive flag. >> >> Also you don't need to redeclare a queue to publish messages to it. As an >> RPC server you assume that the address sent in the 'reply_to' property is >> already present. I think is the responsibility of the RpcClient to make >> sure the queue where it is waiting for replies exists already. >> >> Regards, >> >> Alvaro >> >> And you can indeed do RPC over RabbitMQ by using different connections. >> >> On Wed, Jun 20, 2012 at 8:03 PM, Denis wrote: >> >> Hello guys. >>> >>> I'm trying to build RPC using PHP, here is my description of problem: >>> http://stackoverflow.com/**quest**ions/11104004/rabbitmq-**rpc-** >>> exclusive-queues-locking-**php<http://stackoverflow.com/questions/11104004/rabbitmq-rpc-exclusive-queues-locking-php> >>> >>> The main issue I suspect is that Client.php and Server.php try to >>> connect to RabbitMQ server using different connections, which leads to >>> inability of using EXCLUSIVE queue (that is declared in CLient.php) from >>> Server.php >>> >>> Can u give me a way I can dig to? I'm out of ideas ... >>> >>> ______________________________**_________________ >>> rabbitmq-discuss mailing list >>> rabbitmq-discuss@lists.**rabbitmq.com<[email protected]> >>> https://lists.rabbitmq.com/**cgi-bin/mailman/listinfo/**rabbitmq-discuss<https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss> >>> >>> >> > _______________________________________________ > rabbitmq-discuss mailing list > [email protected] > https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss > > -- You received this message because you are subscribed to the Google Groups "rabbitmq-discuss" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/rabbitmq-discuss?hl=en.
