Fix MyFreeCams websocket message parsing
This commit is contained in:
parent
4205cb6ff2
commit
d2c2cb476b
|
@ -455,17 +455,19 @@ public class MyFreeCamsClient {
|
|||
}
|
||||
|
||||
private Message parseMessage(StringBuilder msgBuffer) throws UnsupportedEncodingException {
|
||||
if (msgBuffer.length() < 4) {
|
||||
int packetLengthBytes = 6;
|
||||
if (msgBuffer.length() < packetLengthBytes) {
|
||||
// packet size not transmitted completely
|
||||
return null;
|
||||
} else {
|
||||
try {
|
||||
int packetLength = Integer.parseInt(msgBuffer.substring(0, 4));
|
||||
if (packetLength > msgBuffer.length() - 4) {
|
||||
int packetLength = Integer.parseInt(msgBuffer.substring(0, packetLengthBytes));
|
||||
if (packetLength > msgBuffer.length() - packetLengthBytes) {
|
||||
// packet not complete
|
||||
return null;
|
||||
} else {
|
||||
msgBuffer.delete(0, 4);
|
||||
LOG.trace("<-- {}", msgBuffer);
|
||||
msgBuffer.delete(0, packetLengthBytes);
|
||||
StringBuilder rawMessage = new StringBuilder(msgBuffer.substring(0, packetLength));
|
||||
int type = parseNextInt(rawMessage);
|
||||
int sender = parseNextInt(rawMessage);
|
||||
|
|
Loading…
Reference in New Issue