web-dev-qa-db-ja.com

WebSocketハンドシェイク:予期しない応答コード:404

私の最初のwebsocketプログラムを書いています"WebSocketハンドシェイク:予期しない応答コード:404"、Webページの読み込み中にエラーが発生しました。

JDK 1.7とjboss 8(wildfly8.0)を使用しています。

誰か助けていただけますか?

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

そして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>

ご提案ありがとうございます、答えを見つけました。

コピーしたコードは http://www.Oracle.com/webfolder/technetwork/tutorials/obe/Java/HomeWebsocket/WebsocketHome.html siteからのものです。

問題は、jsファイルで言及されているURLであり、彼らが提案しているプロジェクト名はWebsocketHomeです。プロジェクト名をWebsocketに変更したため、URLはws:// localhost:8080/Websocket/actionsになります。

ご協力ありがとうございました。

10

実際、ここでの問題は、URLの大文字と小文字の区別です。プロジェクト名を変更する必要はありませんでした。 JavaScriptファイルのWebsocket URLを

ws://localhost:8080/WebSocketHome/actions 

(プロジェクト名のように大文字のSを使用)は、問題を解決するでしょう。あなたの場合、それらの両方を変更すると、ケースの不整合が取り除かれたので、うまくいきました。

1
scaleSpace

/ info = 34424の問題(404エラーを伴う)が原因で、 other の場所で提案されているxmlアプローチを使用して放棄する必要がありました。私のプロジェクトにはSpring 4.2があり、多くのSockJS Stomp実装は通常Spring Boot実装でうまく機能します。 このBaeldungからの実装 動作しました(Spring 4.2から5に変更せずに私のために)。彼のブログに記載されている依存関係を使用した後、ClassNotFoundErrorが発生しました。それを修正するために以下の依存関係を追加しました。

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

Baeldungの実装は、奇妙なことにそのような呼び出しを行いません

flow/websocket/add/info?t=1540813753999

それが行うこと(送受信時)は以下です。これらのライブラリに精通している人々がこのフォーラムでさらに洞察を追加できる場合にのみ、私はそれを貼り付けています。

 >>> 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