我是在网上搜到一个帖子,跟着搞得,结果依旧有问题。帖子如下:
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文件需增加支持吗?