Quarkus websockets-next Отправка сообщений клиентамJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Quarkus websockets-next Отправка сообщений клиентам

Сообщение Anonymous »

Я прочитал эту документацию -> websockets-next и справочное руководство websockets-next.
Я понимаю, как можно реализовать сообщение чата, потому что клиент реагирует на конечные точки, но я понятия не имею, как сервер может отправлять сообщения клиентам, если на сервере происходят обновления.
Во-вторых, как я могу отправлять не только текстовые сообщения, но и целые DTO?
У меня есть никогда не работал с сокетами, поэтому знаю только REST-Endpoints.
Мой пример кода:
DTO для клиентов:
@Data
public class InformationForClientDTO {
private List list;
private int version;
}

Код на сервере:
@ApplicationScoped
public class ServerCode {

public void someCalculation(){
//Server has reached some point which is important for clients. Send listForClients to all connected clients:
Arraylist listForClients;
//How to send this list to the clients? How can I call the websocket with all clients and send them the DTOs?
}

}

Пример кода Из вики Quarkus:
@WebSocket(path = "/chat/{username}")
public class ChatWebSocket {

// Declare the type of messages that can be sent and received
public enum MessageType {USER_JOINED, USER_LEFT, CHAT_MESSAGE}
public record ChatMessage(MessageType type, String from, String message) {
}

@Inject
WebSocketConnection connection;

@OnOpen(broadcast = true)
public ChatMessage onOpen() {
return new ChatMessage(MessageType.USER_JOINED, connection.pathParam("username"), null);
}

@OnClose
public void onClose() {
ChatMessage departure = new ChatMessage(MessageType.USER_LEFT, connection.pathParam("username"), null);
connection.broadcast().sendTextAndAwait(departure);
}

@OnTextMessage(broadcast = true)
public ChatMessage onMessage(ChatMessage message) {
return message;
}

}


Подробнее здесь: https://stackoverflow.com/questions/785 ... to-clients
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»