Comment diffuser des messages dans l'API Spring réactive Websocket?

max:

Je développe une conversation simple. Je aime vraiment l'API ressort websocket à base de Tomcat, mais il y a un problème. Tomcat utilise un modèle basé fil. Si j'ai environ 500 utilisateurs en ligne, tomcat commence 200 threads (valeur par défaut) et mes dies CPU. Par conséquent, je besoin d'une mise en œuvre de websocket qui est basée en boucle d'événements. J'ai décidé d'essayer l'API réactive ressort flambant neuf avec websockets.

, J'ai besoin d'une conversation avec bavardoirs. Lorsqu'un utilisateur envoie un message dans une salle de chat, doit être envoyé à tous les utilisateurs dans la salle de chat.

Spring offre l'API suivante:

@Service
public class ChatWebSocketHandler implements WebSocketHandler {

    @Override
    public Mono<Void> handle(WebSocketSession session) {
        Mono<Void> input =  ;
        Mono<Void> output = ;

        return Mono.zip(input, output).then();
    }
}

Il n'y a pas d' API pour détecter connectedet des disconnectedévénements (comme, il était avec Tomcat). Donc, je ne peux pas stocker une collection de active sessions, qui peut être utilisé pour la diffusion de messages.

Floriande:

Il y a un bon article qui porte sur la mise en œuvre d'une application de chat global en utilisant webflux en combinaison avec websockets how-to-Build-a-chat-app-utilisant-webflux-websockets-REACT . Vous devriez être en mesure d'obtenir une bonne compréhension de l'API par son code et de le modifier pour répondre à vos besoins de plusieurs salles de chat.

Il décrit également comment vous pouvez écouter connecter et déconnecter « événements ». Vous pouvez trouver le projet correspondant sur github: java-chat réactif .

Je suppose que tu aimes

Origine http://43.154.161.224:23101/article/api/json?id=214938&siteId=1
conseillé
Classement