博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JFinal整合WebSocket开发
阅读量:5870 次
发布时间:2019-06-19

本文共 2435 字,大约阅读时间需要 8 分钟。

hot3.png

说明以tomcat容器为例,tomcat7以上版本开始支持websocket,JFinal集成的jetty服务器不支持websocket

一、包依赖,tomcat7或是javaee包都行,两者二选一,容器中已提供所以只作为提供者

org.apache.tomcat
tomcat-websocket-api
7.0.47
provided
javax
javaee-api
7.0
provided

二、JFinal的配置,需要一个Handler拦截websocket请求,WebSocketHandler实现如下

package com.nmtx.manager.handler;import java.util.regex.Pattern;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import com.jfinal.handler.Handler;import com.jfinal.kit.StrKit;public class WebSocketHandler extends Handler{	private Pattern filterUrlRegxPattern;		public WebSocketHandler(String filterUrlRegx) {		if (StrKit.isBlank(filterUrlRegx))			throw new IllegalArgumentException("The para filterUrlRegx can not be blank.");		filterUrlRegxPattern = Pattern.compile(filterUrlRegx);	}	@Override	public void handle(String target, HttpServletRequest request, HttpServletResponse response, boolean[] isHandled) {		if (filterUrlRegxPattern.matcher(target).find())			return ;		else			next.handle(target, request, response, isHandled);			}}

JFinalConfig中配置

/**	 * 接收处理跳转	 */	@Override	public void configHandler(Handlers me) {          me.add(new WebSocketHandler("^/websocket"));	}

配置WebSocket处理类

package com.nmtx.manager.controller.websocket;import java.io.IOException;import javax.websocket.OnClose;import javax.websocket.OnMessage;import javax.websocket.OnOpen;import javax.websocket.Session;import javax.websocket.server.ServerEndpoint;import com.jfinal.kit.JsonKit;import com.jfinal.plugin.redis.Redis;import com.nmtx.common.ErrorCode;import com.nmtx.common.MessageResp;import com.nmtx.manager.common.base.LoggerManager;import com.nmtx.manager.model.message.Message;import com.nmtx.manager.model.permission.User;import com.nmtx.manager.utils.WebSocketSessionUtils;import com.nmtx.plugins.auth.AuthUser;import com.nmtx.utils.ModelUtils;@ServerEndpoint("/websocket")public class WebSocketController {    	@OnOpen	public void onOpen(Session session) {			}	@OnClose	public void onClose(Session session) {			}	@OnMessage	public void onMessage(String requestJson, Session session) {		session.getBasicRemote().sendText(requestJson);	}}

三,html5端请求

 

Java后端WebSocket的Tomcat实现 Welcome


打包搞定

转载于:https://my.oschina.net/u/136848/blog/781896

你可能感兴趣的文章
Hyper-V 2016 系列教程30 机房温度远程监控方案
查看>>
国内先进的智能移动广告聚合平台-KeyMob聚合
查看>>
我的友情链接
查看>>
Xshell 连接虚拟机慢 解决方案
查看>>
我的友情链接
查看>>
PHP - 如何打印函数调用树
查看>>
js闭包
查看>>
寒假。3.3.G - Common Child (最大公共子序)
查看>>
设计模式学习笔记--原型模式
查看>>
.Net 通过MySQLDriverCS操作MySQL
查看>>
JS Cookie
查看>>
ubuntu Unable to locate package sysv-rc-conf
查看>>
笔记:认识.NET平台
查看>>
cocos2d中CCAnimation的使用(cocos2d 1.0以上版本)
查看>>
【吉光片羽】短信验证
查看>>
MacBook如何用Parallels Desktop安装windows7/8
查看>>
gitlab 完整部署实例
查看>>
GNS关于IPS&ASA&PIX&Junos的配置
查看>>
七天学会ASP.NET MVC (四)——用户授权认证问题
查看>>
upgrade to iOS7,how to remove stroyboard?
查看>>