У меня естьIs getRemote(). SendString (msg, new WriteCallback() {..}) стабильно?
class MyWebSocket extends WebSocketAdapter
Мне нужно отправить TEXT1, text2 и Text3 к WebSocket клиента с помощью:
getRemote().sendString(text, new WriteCallback() {...})
Этот вызов асинхронной, поэтому я ожидаю, что работа выполняется в разных потоках из пула Jetty в ,
Мой вопрос:
Могу ли я быть уверен, что на клиенте последовательность будет такой же: text1, text2 и text3?
Если да, добавьте ссылку на официальную документацию, если таковая имеется.
Обновление: В документации RemoteEndpoint можно прочитать:
void sendString(String text)
throws IOException
Отправить текстовое сообщение, блокирование, пока все байты сообщения не было передано.
и
void sendString(String text,
WriteCallback callback)
Запускает асинхронную передачу текстового сообщения. Этот метод может вернуться до передачи сообщения. Разработчики могут предоставить ответный вызов , чтобы получать уведомление, когда сообщение было передано, или привели к ошибке.
Итак, в случае sendString с обратным вызовом, как он может быть асинхронным, если вызываемый вызов вызывается в том же потоке?
Кроме того, в чем разница между этими двумя методами?
Я не вижу замечания для асинхронного метода, в котором обратный вызов вызывается (синхронно) из того же потока. Я бы оценил, что он вызван из другого потока, который обрабатывает исходящие кадры. – Matthias247