# zhao-websocket **Repository Path**: perfectionsit/zhao-websocket ## Basic Information - **Project Name**: zhao-websocket - **Description**: 该项目是一个基于 Spring Boot 和 JavaScript 的轻量级快速开发 WebSocket 协议通讯的工具包。 - **Primary Language**: Unknown - **License**: GPL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 4 - **Forks**: 1 - **Created**: 2023-04-08 - **Last Updated**: 2023-11-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # zhao-Websocket 该项目是一个基于 Spring Boot 和 JavaScript 的轻量级快速开发 WebSocket 协议通讯的工具包。 ## 简介 本项目提供了一组用于构建 WebSocket 通讯应用的 API和SDK,它们简单易用、轻量快速。通过使用本工具包,开发人员可以方便地构建具有 WebSocket 功能的应用程序。 简化WebSocket通讯应用开发,将WebSocketAPI事件驱动接口封装为基于Promise的驱动模式,将Springboot-starter-websocket事件驱动接口封装为基于注解的请求映射模式。为了保证通讯信息安全与扩展信息类型,将通讯信息编码为二进制信息进行发送,接受信息后再将信息译码。前端具有连接与关闭连接,请求与通知处理,断线检测,断线重连,消息分片等功能。后端具有监听器,事件监听,错误处理,超时踢出,方法地址映射,响应与通知,token验证等功能。 使用本工具开发的实时聊天小网站:https://zhao.zhaowenhao.cn 测试账户:demo1、demo2。密码:123456 ## 要求 - springboot版本3.0及以上,jdk版本17及以上(自动装配文件与springboot2.0不同,如有需要可以自行修改) ## 快速开始 Server端: - 将websocket-Server/jar中的jar包导入至项目中,分为两个版本 WebsocketServer-WebStarterIncluded:内含spring-boot-starter-web依赖,无需spring-boot-starter-web依赖即可运行 WebsocketServer-WithoutWebStarter:无spring-boot-starter-web依赖,需要导入spring-boot-starter-web依赖才能运行 - 添加依赖: 在项目目录下新建libs文件夹并放入jar包,配置依赖: - gradle: ```sh implementation fileTree(dir: 'libs', includes: ['WebsocketServer.jar']) ``` - meavn ```sh zhao zhao 1.0 system ${project.basedir}/lib/WebsocketServer.jar ``` Borwser端: - 将websocket-Browser/websocketBrowser.js文件保存至前端项目中 使用方法详见demo ## 功能 Server端: - @WsController注解标注controller层 - @WsMapping注解标注controller层方法 - 监听websocket中close、error、open事件只需要实现WsEvent接口 - 监听请求只需要实现WsAuthentication接口 - 自动回应心跳包 - 可以根据参数及参数名自动注入方法中 - WsUtil中封装通知、下线等方法 - 可同时处理字符数据以及字节数据 Browser端: - newSocket建立与服务器连接,连接后自动发送心跳包,非正常断开自动重连 - setInit注册连接断开后执行方法 - addNoticeFunction注册通知执行方法 - socket发送请求,字符数据以及字节数据可同时发送,自动分片 - setWebsocketPath设置连接路径 - getCloseType获取连接断开类型,客户端登出或服务端踢出 ## 开发者信息 - 作者:瞾彧滉 - 邮箱:zwh1350253335@gmail.com - git小白一个,希望自己做的工具能帮助到更多的人,欢迎大家修改与指正 ## 更新日志 0.1.1 - 优化消息队列,解决大文件信息缓存时的脏缓存问题 0.1.0 - websocketBrowser.js还可以进行优化,目前只可以连接单个服务器,可以改为直接按照路径进行访问,就像axios一样,后端SDK还有很多可修改参数没有暴露给开发者。但是能用。先忙毕业的事情。