Страницы

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

понедельник, 6 января 2020 г.

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

#java #websocket


С помощью 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"));
}


Как я понимаю, нужно туда вкрутить отправщика и поставить какое-то условия, чтобы
в случае если сообщение пришло, он высылал его в ответ. Однако я не совсем понимаю
как это сделать=(
    


Ответы

Ответ 1



http://vertx.io/docs/vertx-core/java/ - смотреть доки http://vertx.io/blog/some-rest-with-vert-x/ - классный пример httpServer.requestHandler(request -> { //Тело });

Ответ 2



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

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

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