Of course there is a way!. You could use more than one byte for the Ack Counter. The problem is that is a very internal check. For example, one reliable message would be like:
senderid,receiverid,ackid,msgtype,msgdata,timerid
senderid = one byte (by default)
receiverid = one byte(by default)
etc...
then, if you want to use two bytes for the ackid you must change all places where the message is parsed, telling them that there are N bytes for the Ack Id. Then you must change all the functions that returns the next free ack id, etc...
What i say is that this is a "relatively easy job" for Surreal. So why spend lot of hours changing it ourselves? I have made lot of changes to the library, but only easy things.
And of course, Surreal thought that you would have a limit anyway, so the user should check that. Although as i have commented before, the best solution is to put the "not free ack id" messages in a queue, then send them when possible. I think this is an easier solution...
senderid,receiverid,ackid,msgtype,msgdata,timerid
senderid = one byte (by default)
receiverid = one byte(by default)
etc...
then, if you want to use two bytes for the ackid you must change all places where the message is parsed, telling them that there are N bytes for the Ack Id. Then you must change all the functions that returns the next free ack id, etc...
What i say is that this is a "relatively easy job" for Surreal. So why spend lot of hours changing it ourselves? I have made lot of changes to the library, but only easy things.
And of course, Surreal thought that you would have a limit anyway, so the user should check that. Although as i have commented before, the best solution is to put the "not free ack id" messages in a queue, then send them when possible. I think this is an easier solution...