SteamSockets API - FlushNet()/LowLevelSend() does not seem to remove pending messages once processed

Dear fellow UE4 lovers and staff at Epic :slight_smile:

I have a problem happening with SteamSockets plugin working with PacketHandlerComponents. Specifically, the internals of the SteamSocketsAPI of packet consumption does not seem to be ‘properly’ removing the message from the queue and thus I end up with this log entry after a certain amount of data is transferred.

Here is the very short of my question: what could I be doing wrong, or am I not doing, in order for SteamSockets to be running into this error:

LogSteamSocketsAPI: Warning: SteamSockets API: Warning Connection already has 16777027 bytes pending, cannot queue any more messages

Note: the number of bytes pending, while when set higher does to an extent increase the amount of data sent before hitting this, does not actually appear to be accurate. This example appeared to be somewhere actually in the vicinity of 900 or so bytes.

Before this error starts to occur, all the data is successfully transferred and processed. Everything actually works very well, up until this situation occurs.

I’m running a dedicated server via SteamSockets plugin in order to be able to transfer what can end up being rather large amounts of data, possibly in excess of 100MB, although the mean amount will be in the vicinity of 2-10MB. I am also using a custom packet handler component for some pre-packet processing, like compression and some encryption and I am also using the ReliabilityComponent for obvious reasons. Again, everything works and all the data tends to be transferred, my main data amount being around 2.5MB, and I can process the data on the receiving end. But after several sends, the socket is overfull with data of the source I’m not sure. I believe it is Steam network internal messages.

In order to keep this post short, I’m hoping that the description above will allow somebody - anybody (a JonB is referenced in the code with notes to himself) to point me in the right direction to get past this last hurdle it what has been an incredibly arduous 2 months of study and work to get to this point, and prevent myself from having to implement a very poor work-around for this if I can’t get these sockets cleaned up.

Please let me know if more information is required - I greatly appreciate any help on this!

It turns out that this issue is still present, only it appears when there are multiple clients uploading data.

In answer to my own question: I solved it!


It turns out that this issue is still present, only it appears when there are multiple clients uploading data.