web-dev-qa-db-fra.com

Prise de contact WebSocket: code de réponse inattendu: 404

J'écris mon premier programme websocket et je reçois "Poignée de main WebSocket: code de réponse inattendu: 404", erreur lors du chargement de la page Web.

J'utilise JDK 1.7 et jboss 8 (wildfly8.0).

Quelqu'un pourrait-il s'il vous plaît aider?

window.onload = init;
var socket = new WebSocket("ws://localhost:8080/WebsocketHome/actions"); 
socket.onmessage = onMessage; 

et tête en html

<head> 
 <title></title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <script src="websocket.js" type="text/javascript"></script> 
 <link rel="stylesheet" type="text/css" href="style.css"> 
</head>
9

Merci les gars pour votre suggestion, j'ai trouvé la réponse.

Le code que j'ai copié provient du site http://www.Oracle.com/webfolder/technetwork/tutorials/obe/Java/HomeWebsocket/WebsocketHome.html .

Le problème était l'URL mentionnée dans le fichier js et le nom du projet qu'ils proposent est WebsocketHome. J'avais changé le nom du projet en Websocket donc mon URL devrait être ws: // localhost: 8080/Websocket/actions.

Merci pour votre aide.

10

En fait, le problème ici est la sensibilité à la casse dans les URL. Vous n'avez pas eu besoin de modifier le nom du projet. Changer simplement l'URL Websocket dans le fichier JavaScript en

ws://localhost:8080/WebSocketHome/actions 

(avec S majuscule, comme dans le nom du projet) aurait résolu le problème. Dans votre cas, la modification des deux a supprimé l'incohérence de la casse, donc cela a fonctionné.

1
scaleSpace

C'est à cause du problème de/info = 34424 - avec une erreur 404 - que j'ai dû abandonner l'utilisation de l'approche xml suggérée à autre endroits. J'ai Spring 4.2 dans mon projet et de nombreuses implémentations SockJS Stomp fonctionnent généralement bien avec les implémentations Spring Boot. Cette implémentation de Baeldung a fonctionné (pour moi sans passer de Spring 4.2 à 5). Après avoir utilisé les dépendances mentionnées dans son blog, cela m'a toujours donné ClassNotFoundError. J'ai ajouté la dépendance ci-dessous pour le corriger.

<dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-core</artifactId>
        <version>4.2.3.RELEASE</version>
    </dependency>

La mise en œuvre de Baeldung ne fait curieusement pas de tels appels

flow/websocket/add/info?t=1540813753999

Ce qu'il fait (lors de l'envoi et de la réception) est ci-dessous. Je le colle uniquement au cas où des personnes connaissant bien ces bibliothèques pourraient ajouter des informations sur ce forum.

 >>> SEND
destination:/app/chat
content-length:38

{"from":"nicholas","text":"try again"}

<<< MESSAGE
destination:/topic/messages
content-type:application/json;charset=UTF-8
subscription:sub-0
message-id:m3p096zk-11
content-length:53

{"from":"nicholas","text":"try again","time":"13:46"}
0
veritas