<div dir="ltr">Inlined below.<br><div class="gmail_extra"><br>-Alan<br><br><div class="gmail_quote">On Fri, Jun 14, 2013 at 3:18 AM, 3k4b251 <span dir="ltr"><<a href="mailto:314992959@qq.com" target="_blank">314992959@qq.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><<a href="http://rabbitmq.1065348.n5.nabble.com/file/n27390/list_queue.jpg" target="_blank">http://rabbitmq.1065348.n5.nabble.com/file/n27390/list_queue.jpg</a>><br>
<br>
you can see tha I get four messages in the queue -----fb_test_2<br>
,so I will use function wait_simple_frame() to receive msg in a<br>
thread.<br>
<br>
<br>
in the void main(){};<br>
<br>
Scene 1:<br>
I open the channel 1 : amqp_channel_open(conn,1);<br>
ask consumer :amqp_basic_consume(conn,1...);<br>
I get the message from queue---fb_test_2<br>
<br>
Scene 2:<br>
I did nothing;<br>
I block in the wait_simple_frame() and nothing receive;<br>
<br>
Scene 3:<br>
I open the channel 1: amqp_channel_open(conn,1);<br>
I ask consumer : amqp_basic_consume(conn,1...);<br>
then I close the channel immediately : amqp_channel_close(conn,1);<br>
but what happens, I still receive the message... I don't think I<br>
should receive them. what' the problem?<br></blockquote><div><br></div><div style>You're seeing the result of the network buffering. As soon as the broker received the basic.consume method, if there are messages in the queue, the broker will start sending queued messages to the client. Even though you immediately closed the channel, because it takes time to send the channel.close method across the network, the broker will still have time to send messages to the client before the channel is closed. You are seeing messages that are sent before the broker closes the channel.</div>
<div style><br></div><div style>This is expected behavior.</div><div style><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
--<br>
View this message in context: <a href="http://rabbitmq.1065348.n5.nabble.com/rabbitmq-c-close-channel-already-but-still-get-message-from-the-channel-tp27390.html" target="_blank">http://rabbitmq.1065348.n5.nabble.com/rabbitmq-c-close-channel-already-but-still-get-message-from-the-channel-tp27390.html</a><br>
Sent from the RabbitMQ mailing list archive at Nabble.com.<br>
_______________________________________________<br>
rabbitmq-discuss mailing list<br>
<a href="mailto:rabbitmq-discuss@lists.rabbitmq.com">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><br></div></div>