java - A browser can't connect with Spring4 WebSocket server -
web.xml <?xml version="1.0" encoding="utf-8"?> <web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xsi:schemalocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"> <display-name>archetype created web application</display-name> <context-param> <param-name>contextconfiglocation</param-name> <param-value>/web-inf/applicationcontext.xml</param-value> </context-param> <listener> <listener-class>org.springframework.web.context.contextloaderlistener</listener-class> </listener> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list>
<bean id="websocket" class="com.example.websocket.handler.websocketendpoint" /> <websocket:handlers> <websocket:mapping path="/websocket.ws" handler="websocket" /> <websocket:handshake-interceptors> <bean class="com.example.websocket.handshakeinterceptor" /> </websocket:handshake-interceptors> </websocket:handlers> handshakeinterceptor.java package com.example.websocket; import java.util.map; import org.springframework.http.server.serverhttprequest; import org.springframework.http.server.serverhttpresponse; import org.springframework.web.socket.websockethandler; import org.springframework.web.socket.server.support.httpsessionhandshakeinterceptor; public class handshakeinterceptor extends httpsessionhandshakeinterceptor{ @override public boolean beforehandshake(serverhttprequest request, serverhttpresponse response,websockethandler wshandler, map<string,object> attributes) throws exception{ system.out.println("before handshake!"); homecoming super.beforehandshake(request,response,wshandler,attributes); } @override public void afterhandshake(serverhttprequest request, serverhttpresponse response,websockethandler wshandler, exception ex){ system.out.println("after handshake!"); super.afterhandshake(request,response,wshandler,ex); } } websocketendpoint.java package com.example.websocket.handler; import org.springframework.web.socket.textmessage; import org.springframework.web.socket.websocketsession; import org.springframework.web.socket.handler.textwebsockethandler; public class websocketendpoint extends textwebsockethandler{ @override protected void handletextmessage(websocketsession session, textmessage message) throws exception{ super.handletextmessage(session, message); system.out.println(message.getpayload()); textmessage returnmessage =new textmessage(message.getpayload()+"received @ server"); session.sendmessage(returnmessage); } } but can't connect it.
javascript code:
chat.socket = new websocket('ws://localhost:80/books/websocket.ws'); is url wrong? "books" project name in tomcat. know wrong? answer.
the server fine,but got error "firefox can't connect ws://localhost/books/websocket.ws" [http/1.1 404 not found 6ms] web console.
java javascript spring websocket
No comments:
Post a Comment