#java #websocket #server
#java #websocket #сервер
Вопрос:
private void getIncomingData(InputStream is, OutputStream os) throws IOException {
List<ArrayList> bucket = new ArrayList<ArrayList>();
while (true) {
try {
List<Integer> list = new ArrayList<Integer>();
int readed;
while ((readed = is.read()) != -1) {
list.add(readed);
if (is.available() <= 0) {
// add to bucket with FRAMES
if (list.size() > 0) {
// check is final Frame
if (checkIsFinalFrame(list.get(0).byteValue())) {
this.isLastFrame = true;
}
System.out.println("SIZE OF list[ " list.size() " ]nn");
bucket.add((ArrayList) list);
}
break;
}
}
} catch (IOException e) {
System.out.println(e.getMessage());
is.close();
os.close();
break;
}
}
}
При отправке данных размером менее 2 ^ 16 первый байт равен 10000001
и все работает нормально.
Но когда объем данных превышает 2 ^ 16, первый байт равен 00000001, и больше кадров не принимается (ожидание байта 10000001).
Для клиентской стороны используется «‘var socket = new WebSocket(‘ws://…’);»‘
Я не могу понять, что не так!
Комментарии:
1. Разделите их на куски
2. Как я могу разделить их на части со стороны клиента?