Before I dive into the code, can someone tell me if there is any documentation available for confirmed delivery in Socket.IO?
Here's what I've been able to glean so far:
- A callback can be provided to be invoked when and if a message is acknowledged
- There is a special mode "volatile" that does not guarantee delivery
- There is a default mode that is not "volatile"
This leaves me with some questions:
- If a message is not volatile, how is it handled? Will it be buffered indefinitely?
- Is there any way to be notified if a message can't be delivered within a reasonable amount of time?
- Is there any way to unbuffer a message if I want to give up?
I'm at a bit of a loss as to how Socket.IO can be used in a time sensitive application without falling back to volatile mode and using an external ACK layer that can provide failure events and some level of configurability. Or am I missing something?