Removing Message Limits

I've looked around, searched Google, and even tried asking on Discord. My team's project is at a critical junction and I could really use a straight forward, no nonsense answer to this. We've got our self-hosted server already set up and running without unlimited CCU license. The only problem we're having is the built-in limits on messages per second. I was told I can modify an XML file or make adjustments to the InitInboundController method. I wasn't told what XML file, nor what class the Init... method could be found in.

After searching myself I found both the XML file and the class (in the LoadBalancing solution inside of GameApplication.cs). The XML file wants a hard coded "number", which doesn't make sense to us in terms of removing the limit altogether. What would we write into that line of the XML file to remove the limit?

I looked into using "InboundController.SetMessageLimits" inside of the "GameApplication.InitInboundController"; but the SetMessageLimits method doesn't make much sense to me. It requires a "MessageLimits" parameter, and that's what doesn't make sense. The documentation isn't clear enough on "MessageLimits". The constructor for it takes 3 integers that are not explained in the documentation as far as what they represent in terms of getting rid of the message limits; because according to the documentation the default setting for "msgRate" and "dataRate" is already unlimited. If that's true, where in the code is it setting them to be anything else?

Quick, and more importantly...thorough...help with this would be greatly appreciated!

Answers

  • hi, @DRRosen3

    I did not see your question on discord. or may be answered too quickly. do not hesitate to reanswer.

    first switching off limit is insane. So, I would recommend you to go next route:

    1. add this section to your GameServer/MasterServer .xml.config

    <SocketServer>
       <Limits OnlyLogViolations = "true">
        <MessageRate>1000</MessageRate>
        <MessageDataRate>100000</MessageDataRate>
        <MaxMessageSize>200000</MaxMessageSize>
       </Limits>
     </SocketServer>
    

    Look on OnlyLogViolations it means that you will see how many messages you send and after testing you can set save values and switch that flag to false. This way you stay safe and everything works for you.

    There is no 'NoLimit' value. just set something big enough if you do not care.

    Section above sets global limit for all incoming data PER PEER. if you need tune value per operation than you have to modify `Limits.Inbound.Opertions` section


    best,

    ilya