Table des matières
Netty Websocket Server renvoie 401, Solution non réactive du navigateur
Description du problème
Solution
Maison Java javaDidacticiel Quelle est la raison pour laquelle le navigateur ne répond pas après le retour du serveur WebSocket 401? Comment le résoudre?

Quelle est la raison pour laquelle le navigateur ne répond pas après le retour du serveur WebSocket 401? Comment le résoudre?

Apr 19, 2025 pm 02:21 PM
处理器 浏览器 ai red

Quelle est la raison pour laquelle le navigateur ne répond pas après le retour du serveur WebSocket 401? Comment le résoudre?

Netty Websocket Server renvoie 401, Solution non réactive du navigateur

Lorsque vous utilisez Netty pour créer un serveur WebSocket et effectuer une vérification du jeton, si le jeton n'est pas valide, le serveur renvoie un code d'état 401 et ferme la connexion, mais le navigateur peut ne pas réagir en aucune façon. Cet article analyse ce problème et fournit des solutions.

Description du problème

Les jetons sont nécessaires pour développer des serveurs WebSocket à l'aide de NetTy. Lorsque la vérification des jetons échoue, le serveur renvoie 401 et ferme la connexion, mais le navigateur ne répond pas et le front-end ne peut pas connaître la raison de la fermeture de la connexion. Exemple de code côté serveur:

 private void httpResponse401 (ChannelHandlerContext ctx, fullhttprequest request) {
    FullHttpResponse Response = new DefaultfullHttpResponse (request.protoColVersion (), httpResponSestatus.unAuthorized);
    réponse.Headers (). set (httpheadernames.content_length, 0);
    ctx.writeAndFlush (Response) .AddListener (ChannelfUTUreListener.close);
    REFORENCECOUNTUTIL.Release (demande);
}
Copier après la connexion

Code JavaScript frontal:

 var socket = nouveau WebSocket ("ws: //127.0.0.1: 18080 / ws? token = xxxx");
Copier après la connexion

Bien que le serveur renvoie 401 et ferme la connexion, le navigateur ne répond en aucune façon.

Solution

Le navigateur ne répond pas car la réponse 401 est ignorée pendant la phase de poignée de main WebSocket. Nous devons le traiter pendant la phase de poignée de main ou après l'établissement de la connexion.

Solution 1: Retour 401 Réponse pendant la phase de poignée de main

Dans la phase de poignée de main WebSocket (phase de demande HTTP), si la vérification des jetons échoue, la réponse HTTP 401 sera directement retournée pour éviter d'établir une connexion WebSocket. Modifiez le code côté serveur:

 if (! validateToken (demande)) {
    FullHttpResponse Response = new DefaultfullHttpResponse (httpversion.http_1_1, httpResponsestatus.unAuthorized);
    réponse.Headers (). Set (httpheadernames.content_type, "text / plain; charset = utf-8");
    Response.Headers (). Set (httpheadernames.content_length, réponse.Content (). ReadableBytes ());
    ctx.writeAndFlush (Response) .AddListener (ChannelfUTUreListener.close);
    retour;
}
Copier après la connexion

Solution 2: Envoyez des messages personnalisés une fois la connexion établie

Si vous devez traiter 401 une fois la connexion WebSocket établie, vous pouvez envoyer un message personnalisé pour informer l'avant immédiatement après l'établissement de la connexion. Ajoutez un processeur personnalisé dans WebSocketServerProtocolHandler de Netty:

 channel.pipeline (). addLast (new WebSocketServerProtoColHandler ("/ ws") {
    @Outrepasser
    public void usereventtriggerred (canalsHandlerContext ctx, objet EVT) lève une exception {
        if (evt == WebsocketServerProtoColHandler.serverHandshakeStateEvent.handshake_complete) {
            if (! validateToken ()) {
                ctx.writeAndflush (new TextWebsocketFrame ("401 Unauthorized").
            }
        }
        super.UseReventTriggerred (CTX, EVT);
    }
});
Copier après la connexion

Le code JavaScript frontal doit écouter les événements onmessage :

 socket.onMessage = fonction (événement) {
    if (event.data === "401 non autorisé") {
        Console.log ("Connexion fermée, raison: 401 non autorisé");
        socket.close ();
    }
};
Copier après la connexion

Grâce à la méthode ci-dessus, le navigateur peut traiter correctement le code d'état 401, et le frontal peut également recevoir des informations de rétroaction correspondantes, résolvant ainsi le problème de la non-réponse du navigateur. Quelle solution à choisir dépend du scénario d'application et des exigences spécifiques.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

<🎜>: Dead Rails - Comment apprivoiser les loups
4 Il y a quelques semaines By DDD
<🎜>: Grow A Garden - Guide de mutation complet
2 Il y a quelques semaines By DDD
Niveaux de force pour chaque ennemi et monstre de R.E.P.O.
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Tutoriel Java
1659
14
Tutoriel PHP
1258
29
Tutoriel C#
1232
24
Téléchargez le site officiel de l'application Oryi Exchange pour le téléphone mobile Apple Téléchargez le site officiel de l'application Oryi Exchange pour le téléphone mobile Apple Apr 28, 2025 pm 06:57 PM

L'application OUYI Exchange prend en charge le téléchargement des téléphones mobiles Apple, visitez le site officiel, cliquez sur l'option "Apple Mobile", obtenez-la et installez-la dans l'App Store, Inscrivez-vous ou connectez-vous pour effectuer le trading des crypto-monnaies.

Combien vaut le bitcoin Combien vaut le bitcoin Apr 28, 2025 pm 07:42 PM

Le prix de Bitcoin varie de 20 000 $ à 30 000 $. 1. Le prix de Bitcoin a radicalement fluctué depuis 2009, atteignant près de 20 000 $ en 2017 et près de 60 000 $ en 2021. 2. Les prix sont affectés par des facteurs tels que la demande du marché, l'offre et l'environnement macroéconomique. 3. Obtenez des prix en temps réel via les échanges, les applications mobiles et les sites Web. 4. Le prix du bitcoin est très volatil, tiré par le sentiment du marché et les facteurs externes. 5. Il a une certaine relation avec les marchés financiers traditionnels et est affecté par les marchés boursiers mondiaux, la force du dollar américain, etc. 6. La tendance à long terme est optimiste, mais les risques doivent être évalués avec prudence.

Laquelle des dix principales plateformes de trading de devises au monde figurent parmi les dix principales plateformes de trading de devises en 2025 Laquelle des dix principales plateformes de trading de devises au monde figurent parmi les dix principales plateformes de trading de devises en 2025 Apr 28, 2025 pm 08:12 PM

Les dix premiers échanges de crypto-monnaie au monde en 2025 incluent Binance, Okx, Gate.io, Coinbase, Kraken, Huobi, Bitfinex, Kucoin, Bittrex et Poloniex, qui sont tous connus pour leur volume et leur sécurité commerciaux élevés.

Laquelle des dix principales plateformes de trading de devises au monde est la dernière version des dix principales plateformes de trading de devises Laquelle des dix principales plateformes de trading de devises au monde est la dernière version des dix principales plateformes de trading de devises Apr 28, 2025 pm 08:09 PM

Les dix principales plates-formes de trading de crypto-monnaie au monde comprennent Binance, Okx, Gate.io, Coinbase, Kraken, Huobi Global, BitFinex, Bittrex, Kucoin et Poloniex, qui fournissent toutes une variété de méthodes de trading et de puissantes mesures de sécurité.

Sesame Open Door Entrée du site officiel Sesame Open Door Dernière entrée officielle 2025 Sesame Open Door Entrée du site officiel Sesame Open Door Dernière entrée officielle 2025 Apr 28, 2025 pm 07:51 PM

Sesame Open Door est une plate-forme qui se concentre sur le trading des crypto-monnaies. Les utilisateurs peuvent obtenir des portails via des sites Web officiels ou des médias sociaux pour s'assurer que l'authenticité des certificats SSL et du contenu du site Web est vérifiée pendant l'accès.

Binance Officielle Entrée Binance Binance Dernière entrée 2025 Binance Officielle Entrée Binance Binance Dernière entrée 2025 Apr 28, 2025 pm 07:54 PM

Visitez le site officiel de Binance et consultez les logos HTTPS et Green Lock pour éviter les sites Web de phishing, et les applications officielles sont également accessibles en toute sécurité.

Quelles sont les dix principales applications de trading de devises virtuelles? Le dernier classement de change de monnaie numérique Quelles sont les dix principales applications de trading de devises virtuelles? Le dernier classement de change de monnaie numérique Apr 28, 2025 pm 08:03 PM

Les dix premiers échanges de devises numériques tels que Binance, OKX, Gate.io ont amélioré leurs systèmes, des transactions diversifiées efficaces et des mesures de sécurité strictes.

Quelles sont les principales plateformes de trading de devises? Les 10 meilleurs échanges de devises virtuels virtuels Quelles sont les principales plateformes de trading de devises? Les 10 meilleurs échanges de devises virtuels virtuels Apr 28, 2025 pm 08:06 PM

Actuellement classé parmi les dix premiers échanges de devises virtuels: 1. Binance, 2. Okx, 3. Gate.io, 4. Coin Library, 5. Siren, 6. Huobi Global Station, 7. Bybit, 8. Kucoin, 9. Bitcoin, 10. Bit Stamp.

See all articles