Страницы

Поиск по вопросам

среда, 13 февраля 2019 г.

Как правильно прописать отправку сообщения клиенту с сервера?

С помощью vert.x core 3.2.1 написал простенький сервер, который принимает сообщения от подключившегося пользователя, однако хотелось бы реализовать ответ сервера(возврат сообщений пользователя обратно).
Сам код:
import io.vertx.core.Handler; import io.vertx.core.Vertx; import io.vertx.core.buffer.Buffer; import io.vertx.core.http.*;
public class serverTest {
public static void main(String[] args) throws Exception {
HttpServer server = Vertx.vertx().createHttpServer(); server.websocketHandler(new Handler() { @Override public void handle(ServerWebSocket webs) { System.out.println("Client connected"); System.out.println("Client's message: "); webs.handler(new Handler() { @Override public void handle(Buffer event) { System.out.println("Received data " + event.toString("ISO-8859-1")); } }); } }); server.listen(8080, "localhost", res -> { if (res.succeeded()) { System.out.println("Server is now listening!"); } else { System.out.println("Failed to bind!"); } }); } }
Через этот интерфейс и метод handle происходит прием сообщений:
@Override public void handle(Buffer event) { System.out.println("Received data " + event.toString("ISO-8859-1")); }
Как я понимаю, нужно туда вкрутить отправщика и поставить какое-то условия, чтобы в случае если сообщение пришло, он высылал его в ответ. Однако я не совсем понимаю как это сделать=(


Ответ

Поковырявшись и потыкав,обнаружил простой метод, благодаря которому можно слать ответы с сервера. Таким образом, метод handle перепишется следующим образом:
public void handle(Buffer event) { System.out.println("Received data: " + event.toString("ISO-8859-1")); webs.writeFinalTextFrame("echo:"+event.toString("ISO-8859-1"));

Комментариев нет:

Отправить комментарий