Работая с vert.x core 3.2.1 увидел такую конфигурацию сервера, использующего веб-соккет:
vertx.createHttpServer().websocketHandler(ws -> ws.handler(ws::writeBinaryMessage)).requestHandler(req -> {
if (req.uri().equals("/")) req.response().sendFile("ws.html");
}).listen(8080);
По записи я понял,что на платформе вертекса мы создаем http-сервер который с помощью метода listen,слушающего порт 8080 находится в ожидании возможного к нему подключения. Также тут используется вебсокетный хендлер, который связан с request-хендлером. Но четкого понимания о том,что происходит в websocketHandler нет. Лямбда-выражения и ::-оператор меня запутали. Объясните пожалуйста что исполняет данный код, или если возможно,распишите эту конструкцию без лямбд.
Ответ
После проб и ошибок,вроде бы удалось привести это заклинание с лямбдами к более простому и громоздкому виду:
server.websocketHandler(ws -> ws.handler(ws::writeBinaryMessage))
.requestHandler(req -> { if (req.uri().equals("smile")) req.response().end("hello");});
server.websocketHandler(new Handler
В итоге видим следующее:первый хендлер в данном туториале работает с веб-сокетным соединением и в нем можно осуществлять обмен сообщениями, второй хендлер предназначен для работы с http и выводит в браузер "hello". Таким образом вертекс предоставляет набор интерфейсов(хендлеров),которые позволяют работать с соединениями различного типа.
Комментариев нет:
Отправить комментарий