Friday, 15 March 2013

java - A browser can't connect with Spring4 WebSocket server -



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>

applicationcontext.xml <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