WebSocket握手:意外的响应代码:404

时间:2015-04-05 09:38:34

标签: javascript websocket wildfly-8

我正在编写我的第一个websocket程序并且正在进行" WebSocket握手:意外的响应代码:404",加载网页时出错。

我正在使用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>

4 个答案:

答案 0 :(得分:9)

谢谢你们的建议,我找到了答案。

我复制的代码来自http://www.oracle.com/webfolder/technetwork/tutorials/obe/java/HomeWebsocket/WebsocketHome.html网站。

问题是js文件中提到的url,他们提出的项目名称是WebsocketHome。我已将项目名称更改为Websocket,因此我的URL应为ws:// localhost:8080 / Websocket / actions。

感谢您的支持。

答案 1 :(得分:1)

实际上,这里的问题是URL中的区分大小写。您无需更改项目名称。只需将JavaScript文件中的Websocket URL更改为

即可
ws://localhost:8080/WebSocketHome/actions 

(使用大写S,如项目名称)可以解决问题。在您的情况下,更改它们都会消除案例不一致性,因此它可以正常工作。

答案 2 :(得分:0)

由于/ info = 34424的问题-404错误-我不得不放弃使用在err(3)处建议的xml方法。我的项目中有Spring 4.2,许多SockJS Stomp实现通常可以与Spring Boot实现一起很好地工作。 other起作用了(对我而言,没有从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"}

答案 3 :(得分:0)

我的猜测是您正在尝试使用普通的浏览器联系网络套接字。 不允许这样做,并会显示404错误。您需要使用脚本或curl来解决网络套接字。