rabbitmq / rabbitmq-objc-client

RabbitMQ client for Objective-C and Swift
https://rabbitmq.com
Other
241 stars 84 forks source link

Reconnecting problem #136

Closed donik closed 6 years ago

donik commented 6 years ago

I use RabbitMQ in iOS, and when network type changed client tries to reconnect. When reconnecting, client creates second channel, and 50% of messages are lost in old channel, because server does not yet know that first channel is closed. RabbitMQ tries to send message to both channels and 50% of messages are lost. Can I consume all messages in second channel, that created when client reconnected?

michaelklishin commented 6 years ago

Thank you for your time.

Team RabbitMQ uses GitHub issues for specific actionable items engineers can work on. GitHub issues are not used for questions, investigations, root cause analysis, discussions of potential issues, etc (as defined by this team).

We get at least a dozen of questions through various venues every single day, often light on details. At that rate GitHub issues can very quickly turn into a something impossible to navigate and make sense of even for our team. Because GitHub is a tool our team uses heavily nearly every day, the signal/noise ratio of issues is something we care about a lot.

Please post this to rabbitmq-users.

Thank you.

michaelklishin commented 6 years ago

Start with Publisher Confirms. Channels before and after recovery are absolutely different ones to RabbitMQ. Publishers and consumers must use the protocol features described in the linked guide to ensure messages are not lost in flight. There are many things that can go wrong at pretty much every level.