我是在网上搜到一个帖子,跟着搞得,结果依旧有问题。帖子如下:
http://blog.csdn.net/woainimax/article/details/53185857
今天正式兼容JFinal和websocket,结果搞了几个小时依旧报错。
前端socket的url路径怎么写都报错。chorme F12总是报错!404估计路径不对。
index:155 WebSocket connection to 'ws://localhost/tmgh/websocket' failed: Error during WebSocket handshake: Unexpected response code: 404
现在依旧不对,现在让我怀疑其是否后台Jfinal对websocket的支持是否配置正确。
先将代码展示出来,往波神予以帮助,谢谢!
这是handler的配置:
WebSocketHandler Handler { Pattern (String filterUrlRegx) { (StrKit.(filterUrlRegx)) IllegalArgumentException()= Pattern.(filterUrlRegx)} (String targetHttpServletRequest requestHttpServletResponse response[] isHandled) { (.matcher(target).find()) .handle(targetrequestresponseisHandled)} }
这是controller的代码:
() WSController Controller { (Session session) { System..println()} (Session session) { System..println()} (String requestJsonSession session) { { session.getBasicRemote().sendText(requestJson)} (IOException e) { e.printStackTrace()} } }
这是config中增加的handler:
(Handlers me) { me.add(WebSocketHandler())}
这是maven的pom.xml,早上已经在波神的指导下去掉了scope : provide
javax.websocketjavax.websocket-api1.1javaxjavaee-api7.0
前台的页面:
var socket = new WebSocket("ws://localhost/tmgh/websocket"); //socket的消息发送 // 连接发生错误的回调方法 socket.onerror = function() { console.log("连接失败!"); }; // 连接成功建立的回调方法 socket.onopen = function(event) { console.log("链接成功!"); } // 接收到消息的回调方法 socket.onmessage = function(event) { console.log("收到消息啦:" +event.data); var obj=eval("("+event.data+")"); layim.getMessage(obj); } // 连接关闭的回调方法 socket.onclose = function() { console.log("关闭连接!!"); } // 监听窗口关闭事件,当窗口关闭时,主动去关闭websocket连接,防止连接还没断开就关闭窗口,server端会抛异常。 window.onbeforeunload = function() { socket.close(); }
请问波神,不知后台的配置有无错误。web.xml文件需增加支持吗?