I'm about to start using AceComm 3 in my addon, and I had a question about flow control. Let's assume I have a large amount of data to transfer from one user to another, does AceComm divide large messages in smaller chunks to prevent flood disconnects ? Or should I take care of that myself at a higher level ?
Side question: what are your experiences about this ? How much data per timeframe can be sent safely in normal conditions ?
Thanks in advance, any input will be valuable at this point :)
Yes, I should have mentioned I was going to use AceSerializer3 as well, I saw what it does and I'll definitely need it, I wasn't too sure about flow control though, that's why I asked :)
I will indeed have to send a table (a really big one), but since it will be low priority, it does not matter if it takes a bit longer, I just want to avoid disconnects. Thanks OrionShock for the tip, I'll check GuildCraft :)
I will indeed have to send a table (a really big one), but since it will be low priority, it does not matter if it takes a bit longer, I just want to avoid disconnects.
i've sent an extremely large table as a single transmission (priority BULK) and while it did get through without any disconnects it did lock up the machine for a couple of seconds while it got processed.
sending the same table one "record" at a time was much smoother on the machine, no lockups, no pauses or lags.
I guess I'll have to make a few tests to see how far I could go without having to do this, although I will probably have to at some point anyway.. I'll know better where to draw the line after some tests :)
Any lockup caused when trying to send a large table is likely caused by AceSerializer-3.0 (to help out your testing, since you don't actually need to transmit to test AceSerializer-3.0). But if you are noticing a lockup I am guessing the table you tried to send was extremely large, and thus took a noticeable time to be processed by AceSerializer-3.0.