معماری RabbitMQ به صورت زیر است

Exchange چهار نوع دارد و دو نوع اصلی آن:
Fanout: در این حالت Exchange به routing key اهمیتی نمی دهد و تمامی پیام ها را به تمامی صف ها می فرستد.
Direct: در این حالت Exchange ها routing key ها را بررسی می کنند و پیامها را به صف های مرتبط می فرستند.
فرق دو کد زیر چیست؟
|
1 2 3 |
await self.send( text_data=json.dumps(my_response) ) |
,
|
1 2 3 4 5 6 7 |
await self.channel_layer.group_send( self.group_name, { "type": "chat.message", "text": json.dumps(my_response) } ) |
اولی پیام رو به همان کانکشن بر میگردونه دومی به با توجه به همان routing key که اینجا به نام group name هست می فرسته یعنی ممکنه به 100 نفر بفرسته