Ale*_*rin 2 tomcat java-ee websocket
我正在尝试在我的网站上实现WebSocket.以下基本教程我添加了这个类:
@ServerEndpoint(value="/websocketendpoint")
public class WebSocket {
private static Set<Session> peers = Collections.synchronizedSet(new HashSet<Session>());
@OnMessage
public String onMessage(String message){ return null; }
@OnOpen
public void onOpen(Session peer){ peers.add(peer); }
@OnClose
public void onClose(Session peer){ peers.remove(peer); }
}
Run Code Online (Sandbox Code Playgroud)
这个JS:
var wsUri = "ws://" + document.location.host + document.location.pathname + "websocketendpoint";
var ws = new WebSocket(wsUri);
ws.onopen = function(){
ws.send("Message to send");
alert("Message is sent...");
};
ws.onmessage = function (evt){
var received_msg = evt.data;
alert("Message is received...");
};
ws.onclose = function(){
alert("Connection is closed...");
};
Run Code Online (Sandbox Code Playgroud)
我将js添加到我的一个页面中,并且仅ws.onclose在控制台中调用,我收到此错误:
Firefox:Firefox无法在ws:// localhost:8080/Mysite/websocketendpoint建立与服务器的连接
Chrome:WebSocket握手期间出错:意外的响应代码:404
我尝试使用'ws://echo.websocket.org' wsUri并且它可以工作,所以我猜问题是在服务器端.
我正在使用以下库:javaee-api-7.0,javax.websocket-api-1.0 我的浏览器与websockets兼容(我检查过)
类似的主题对我没有帮助,所以我要求你提供有关如何解决问题的建议
您可能想要检查这是否是您的错误的根:tomcat 7.0.50 java webscoket实现提供404错误
从版本7.0.47开始,Tomcat有一个JSR-356(即websocket API)实现.它还提供了javax.websocket-api-1.0.jar库,因此您的应用程序不需要它.您可能在编译时需要它,但服务器将在运行时提供它(provided如果您不熟悉该工具,这就是maven 中的范围意味着什么)
确保javax.websocket-api-1.0.jar不会被部署在你的战争,做你的Eclipse服务器视图中点击右键,Clean...接着Clean Tomcat work directory...再一个Publish,然后再试一次.
| 归档时间: |
|
| 查看次数: |
15297 次 |
| 最近记录: |