<a href="http://php.net/manual/en/function.pfsockopen.php" target="_blank">http://php.net/manual/en/function.pfsockopen.php</a><div><br></div><div>The important thing of course will be wrapping this in an intelligent way keeping track of your channels and connections. In your class structure you&#39;d want to know about the connection and authenticated session, channels and such for subsequent requests for reuse</div>

<div><br></div><div>Regards,</div><div><br></div><div>Gavin</div>
<div><br><div class="gmail_quote">On Wed, Jun 29, 2011 at 10:56 AM, Robin Harvey <span dir="ltr">&lt;<a href="mailto:harvey.robin@gmail.com" target="_blank">harvey.robin@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">


OK, I understand.  AFAIK, there&#39;s no way to do that in PHP without writing an extension in C, is there?<div><div></div><div><br><br><br><div class="gmail_quote">On Wed, Jun 29, 2011 at 2:47 PM, Gavin M. Roy <span dir="ltr">&lt;<a href="mailto:gmr@myyearbook.com" target="_blank">gmr@myyearbook.com</a>&gt;</span> wrote:<br>



<blockquote class="gmail_quote" style="margin:0pt 0pt 0pt 0.8ex;border-left:1px solid rgb(204, 204, 204);padding-left:1ex">Cool, I meant persistent, such as with the mysql_pconnect or pgsql_pconnect.<div><br></div><div>
Thanks for the work on amqphp, will look deeper at it for use in other areas. I&#39;m glad there is an active, maintained client!</div>

<div><br></div><div><font color="#888888">Gavin</font><div><div></div><div><br><div><br><div class="gmail_quote">On Wed, Jun 29, 2011 at 4:08 AM, Robin Harvey <span dir="ltr">&lt;<a href="mailto:harvey.robin@gmail.com" target="_blank">harvey.robin@gmail.com</a>&gt;</span> wrote:<br>



<blockquote class="gmail_quote" style="margin:0pt 0pt 0pt 0.8ex;border-left:1px solid rgb(204, 204, 204);padding-left:1ex">

BTW, Gavin, on this point:<div><br><br>&gt; iirc the existing implementations do not have connection pooling<br><br></div>I&#39;ve recently updated amqphp so that you can manage multiple connections at the same time, so for example you can connect to and consume from 2 or more different brokers at the same time.  There&#39;s a demo here:<br>






<br><a href="https://github.com/BraveSirRobin/amqphp/blob/master/demos/demo-multi-consumer.php" target="_blank">https://github.com/BraveSirRobin/amqphp/blob/master/demos/demo-multi-consumer.php</a><br><br>Thanks,<br><font color="#888888">--Robin<br>





<br></font><div class="gmail_quote"><div>
On Wed, Jun 29, 2011 at 4:08 AM, Gavin M. Roy <span dir="ltr">&lt;<a href="mailto:gmr@myyearbook.com" target="_blank">gmr@myyearbook.com</a>&gt;</span> wrote:<br></div><div><div></div><div><blockquote class="gmail_quote" style="margin:0pt 0pt 0pt 0.8ex;border-left:1px solid rgb(204, 204, 204);padding-left:1ex">






While not directly related to your question and you&#39;ve not specified your use case, I have found trying to use native AMQP drivers in my PHP application as having too much overhead for connection management and iirc the existing implementations do not have connection pooling. This means lots of startup time and overhead on every request. To get around this we created a HTTP library that talks to the RabbitMQ JSON RPC Channel plugin. If all you are doing is publishing, you might want to check out VorpalBunny:<br>







<a href="https://github.com/myyearbook/VorpalBunny/" target="_blank">https://github.com/myyearbook/VorpalBunny/</a><br>
As far as the underlying implementation, it&#39;s worth noting that the rabbitmq-c library is considered experimental. While we use it in our C applications in production, I can&#39;t say that we use the PHP extension on top of it. The PHP site has fatal errors for me right now so I can&#39;t look up to see which PHP extension the code is based on, otherwise I&#39;d poke into the code and let you know if there are any timeout settings.<br>







Gavin<br>
<div><div></div><div>On Tuesday, June 28, 2011 at 6:44 PM, Keith Krueger wrote:<br>
&gt; I am using the PHP AMQP extension, as described here:<br>
&gt;<br>
&gt; <a href="http://php.net/manual/en/book.amqp.php" target="_blank">http://php.net/manual/en/book.amqp.php</a><br>
&gt;<br>
&gt; This PHP extension uses the rabbitmq-c library as its underlying implementation.<br>
&gt;<br>
&gt; I would like to set socket timeouts for connection establishment and for each of my enqueues and dequeues. I want to do this in case our server performance degrades, to allow the clients to fail quickly rather than hang.<br>







&gt;<br>
&gt; Does anyone have experience doing this in a PHP environment? I have tried setting the PHP socket timeout as follows.<br>
&gt;<br>
&gt;  ini_set(&#39;default_socket_timeout&#39;, 5);<br>
&gt;<br>
&gt; This appears to have no impact on the PHP extension&#39;s timeout settings. I am still able to enqueue a multi-megabyte MQ message to rabbitmq without losing the socket connection. It takes about 75 seconds to enqueue this message, but the socket is kept open the entire time.<br>







&gt;<br>
&gt; Is there any support either in the PHP AMQP extension or in a different PHP setting that I can use to reduce the timeouts for our interactions with RabbitMQ? I&#39;d rather not live with a potential problem of hanging client processes if I can avoid it.<br>







&gt;<br>
&gt; Thanks,<br>
&gt;<br>
&gt; -Keith<br>
&gt;<br>
</div></div>&gt; _______________________________________________<br>
&gt; rabbitmq-discuss mailing list<br>
&gt; <a href="mailto:rabbitmq-discuss@lists.rabbitmq.com" target="_blank">rabbitmq-discuss@lists.rabbitmq.com</a> (mailto:<a href="mailto:rabbitmq-discuss@lists.rabbitmq.com" target="_blank">rabbitmq-discuss@lists.rabbitmq.com</a>)<br>






&gt; <a href="https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss" target="_blank">https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss</a><br>
<br>
<br>
_______________________________________________<br>
rabbitmq-discuss mailing list<br>
<a href="mailto:rabbitmq-discuss@lists.rabbitmq.com" target="_blank">rabbitmq-discuss@lists.rabbitmq.com</a><br>
<a href="https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss" target="_blank">https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss</a><br>
</blockquote></div></div></div><br>
</blockquote></div><br></div></div></div></div>
</blockquote></div><br>
</div></div></blockquote></div><br></div>