Reduce initial connection bandwidth (#1200)

Reduces bandwidth requirements by being much lazier about how much calibration data is sent to the UI.
This commit is contained in:
Matt
2024-02-01 21:42:54 -05:00
committed by GitHub
parent c7508fea46
commit 62112cd2fd
15 changed files with 275 additions and 88 deletions

View File

@@ -350,8 +350,7 @@ public class DataSocketHandler {
}
}
private void sendMessage(Object message, WsContext user) throws JsonProcessingException {
ByteBuffer b = ByteBuffer.wrap(objectMapper.writeValueAsBytes(message));
private void sendMessage(ByteBuffer b, WsContext user) throws JsonProcessingException {
if (user.session.isOpen()) {
user.send(b);
}
@@ -359,16 +358,18 @@ public class DataSocketHandler {
public void broadcastMessage(Object message, WsContext userToSkip)
throws JsonProcessingException {
ByteBuffer b = ByteBuffer.wrap(objectMapper.writeValueAsBytes(message));
if (userToSkip == null) {
for (WsContext user : users) {
sendMessage(message, user);
sendMessage(b, user);
}
} else {
var skipUserPort = ((InetSocketAddress) userToSkip.session.getRemoteAddress()).getPort();
for (WsContext user : users) {
var userPort = ((InetSocketAddress) user.session.getRemoteAddress()).getPort();
if (userPort != skipUserPort) {
sendMessage(message, user);
sendMessage(b, user);
}
}
}