# jfinal-websocket **Repository Path**: itren/jfinal-websocket ## Basic Information - **Project Name**: jfinal-websocket - **Description**: JFinal架构下开发WebSocket,使用时面向接口WebSocketManager,支持单机(基于内存)和集群(基于Redis的发布订阅) - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 26 - **Created**: 2019-04-22 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # jfinal-websocket #### 项目介绍 jfinal-websocket to develop websocket JFinal架构下开发WebSocket,使用面向接口WebSocketManager,支持单机(基于内存)和集群(基于Redis的发布订阅) #### 软件架构 1.基于 websocket 定制,主要完成的功能是WebSocket session的状态管理,具备单机和集群能力。 2.可以定制自己的ServerEndPoint和WebSocketManager。 #### 安装教程 compile 'top.jfunc.websocket:jfinal-websocket:1.0' 使用方式参见 https://gitee.com/xxssyyyyssxx/jfinal-websocket-demo #### 使用说明 1.配置`WebSocketHandler`用于排除JFinal的路由拦截 ``` /** * 接收处理跳转 */ @Override public void configHandler(Handlers me) { me.add(new WebSocketHandler("^/websocket")); } ``` 2.配置WebSocketManager 在JFinal的`afterJFinalStart`或者`onStart`方法中调用一下类的相应方法 ``` public class WebSocketManagerConfig { /** * 基于内存的单机 WebSocketManager */ public static void configMemory(){ WebSocketManagerUtil.setWebSocketManager(new MemWebSocketManager()); } /** * 基于Redis的集群 WebSocketManager */ public static void configCluster(Jedis jedis){ jedis.subscribe(new Subscriber() , RedisWebSocketManager.CHANNEL); WebSocketManagerUtil.setWebSocketManager(new RedisWebSocketManager(jedis)); } } ``` 3.配置端点,调用相应的方法 ``` @ServerEndpoint("/websocket/{identifier}") public class WebSocketServerEndPoint extends WebSocketEndpoint { @OnOpen public void onOpen(Session session) { } @OnClose public void onClose(Session session) { } @OnMessage public void onMessage(String requestJson, Session session) { } } ``` 4.使用WebSocketManagerUtil获取到WebSocketManager **此项目可以应用于所有Web框架,只需要在某个时刻调用配置类的相应方法即可**