我正在编写我的第一个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>
答案 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来解决网络套接字。