It still has encoding overhead (35 + math.ceil(bytes / 3) * 4), but buffers up to 741 bytes should be possible.
Encoded length can be checked with HttpService:JSONEncode.
Buffers are compressed before encoding, so you might be able to fit more, but be careful as different data will have different compression ratio.
The one singular aspect of this that makes many things limiting, the size of the messages (1 KB), is the one thing that didnāt change. Definitely a disappointing aspect.
Also still waiting on announcements about bug fixes that severely hinder everything I do, but alas, they never come, and the relevant bug report page remains cold and silent.
Is there any way you guys can make sure servers have received the message before returning a 200 status code, and then return a ~500 if not? I already suggested this a while back and was told it was being considered.
Support in Studio has been there for a few yearsā¦ note that the messages sent from Studio are isolated in a test channel so they wonāt impact your game in production.
Regarding reliability, our internal metrics do show significant improvements. Be aware the messaging service does not work like traditional HTTP request/response, itās very expensive to send a message and wait until itās been successfully delivered to all subscribers. Imagine your experience has 10,000 servers that all subscribe to the same topicā¦ That being said, we are still exploring opportunities to avoid such delivery failures.
It would be nice if the messages could be sent more frequently but with less data so if something needed to be synchronised across servers at almost Realtime speeds it could as long as it doesnāt require tons of data to do so thinking like a data sent/received per server/game limit instead of messages sent/received per server/game limit.
Iām having an issue where my gameās universe structure and logic exceeds rate limits at ~160 CCU:
Universe
Lobby place (1 player max)
Subscribes to topic
Match place (16 player max)
Publishes to topic every 10 seconds
Note: game uses a custom matchmaking system.
The particular error code I kept getting was: The rate of message requests exceeds the allowed limit. MessagingService: Please retry after x seconds.
How does this possibly exceed any limit and am I doing something wrong?
Could it be related to the 1 player lobby servers I have?
I was planning on adding cross-server messaging and much more with MessagingService but after this Iām worried I might not be able to without hitting some sort of limit.
You might have hit this limit Messages received per topic: (40 + 80 * number of servers) per minute.
Based on your description, I assume all your servers subscribe to the same topic, in that case every message will be delivered to all servers and can possibly trigger the limit. Your game seems to send 3 messages per second (from all servers), letās assume you have 60 servers, the total received messages on the topic will be 3 * 60(servers) * 60(seconds) = 10,800 messages/minute, while the limit is 40 + 80 * 60 = 4,840.
I donāt entirely understand where the 3 messages per second comes from?
If each match place publishes to the topic every 10 seconds (6 times per minute) and say there are 60 servers active in the match place (which publishes), and 20 servers active in the lobby place (which is subscribed); doesnāt this result in 6 (messages) x 60 (servers) = 360 published messages per minute, while the limit is like you said 4,840 messages/minute?
This is why Iām confused as to why I was hitting rates, and Iād love to use MessagingService to establish a connection between multiple 1-player servers for a matchmaking party system. However, like I mentioned; Iām worried Iāll be hitting some sort of limit without really knowing why.