在好例子网,分享、交流、成长!
您当前所在位置:首页Others 开发实例一般编程问题 → WebSocket聊天室实现J-IM+SpringBoot+Zookeeper+Redis

WebSocket聊天室实现J-IM+SpringBoot+Zookeeper+Redis

一般编程问题

下载此实例
  • 开发语言:Others
  • 实例大小:9.83M
  • 下载次数:17
  • 浏览次数:459
  • 发布时间:2021-11-02
  • 实例类别:一般编程问题
  • 发 布 人:js2021
  • 文件格式:.rar
  • 所需积分:2
 

实例介绍

【实例简介】
J-IM 是用JAVA语言,基于t-io开发的轻量、高性能、单机支持几十万至百万在线用户IM,主要目标降低即时通讯门槛,快速打造低成本接入在线IM系统,通过极简洁的消息格式就可以实现多端不同协议间的消息发送如内置(Http、Websocket、Tcp自定义IM协议)等,并提供通过http协议的api接口进行消息发送无需关心接收端属于什么协议,一个消息格式搞定一切! 前后端分离:前端Vue,后端以springboot框架实现:WebSocket服务器+zookeeper+后端服务器。已实现:群组、图片、红包等扩展功能,群组历史消息使用Redis缓存持久化,List链表格式先进先出滚动保存,每个群组可保留4K条信息。群聊审核、公告、禁言开关、系统广播等。
【实例截图】
【核心代码】
4744300845394918397.rar
├── lb_back_end_eric
│   ├── application.properties
│   ├── lb-im.sql
│   ├── pom.xml
│   ├── root
│   │   └── lb_back_end.log
│   ├── src
│   │   ├── main
│   │   │   ├── java
│   │   │   │   └── com
│   │   │   │   └── lb
│   │   │   │   ├── citybyip
│   │   │   │   │   └── SelectCityByIp.java
│   │   │   │   ├── common
│   │   │   │   │   └── BasesettingProperties.java
│   │   │   │   ├── config
│   │   │   │   │   ├── mybatis
│   │   │   │   │   │   └── MybatisPlusConfig.java
│   │   │   │   │   ├── redis
│   │   │   │   │   │   └── RedisConfig.java
│   │   │   │   │   ├── shiro
│   │   │   │   │   │   ├── CORSFilter.java
│   │   │   │   │   │   ├── LoginAuthorizationFilter.java
│   │   │   │   │   │   ├── MyInterceptor.java
│   │   │   │   │   │   ├── MySessionManager.java
│   │   │   │   │   │   ├── MyShiroRealm.java
│   │   │   │   │   │   ├── NbPassThruAuthenticationFilter.java
│   │   │   │   │   │   ├── NewRolesAuthorizationFilter.java
│   │   │   │   │   │   ├── RetryLimitCredentialsMatcher.java
│   │   │   │   │   │   └── ShiroConfig.java
│   │   │   │   │   └── swagger
│   │   │   │   │   └── Swagger2Config.java
│   │   │   │   ├── controller
│   │   │   │   │   ├── criteria
│   │   │   │   │   │   ├── BroadcastWsBody.java
│   │   │   │   │   │   ├── GetPacketMessge.java
│   │   │   │   │   │   ├── GetRedPacketList.java
│   │   │   │   │   │   ├── GroupIdenttyCriteria.java
│   │   │   │   │   │   ├── Heartbeat.java
│   │   │   │   │   │   ├── LoginCriteria.java
│   │   │   │   │   │   ├── LoginManageCriteria.java
│   │   │   │   │   │   ├── OpenRedPacket.java
│   │   │   │   │   │   ├── RedpacketCriteria.java
│   │   │   │   │   │   └── UserSettingCriteria.java
│   │   │   │   │   ├── features
│   │   │   │   │   │   └── FeaturesObjController.java
│   │   │   │   │   ├── file
│   │   │   │   │   │   └── FileController.java
│   │   │   │   │   ├── group
│   │   │   │   │   │   └── GroupController.java
│   │   │   │   │   ├── redpacket
│   │   │   │   │   │   ├── redpacketAlgorithm
│   │   │   │   │   │   │   ├── ArithUtil.java
│   │   │   │   │   │   │   └── RedpacketAlgorithm.java
│   │   │   │   │   │   └── RedpacketController.java
│   │   │   │   │   └── user
│   │   │   │   │   └── UserController.java
│   │   │   │   ├── LbApplication.java
│   │   │   │   ├── mapper
│   │   │   │   │   ├── FeaturesObj
│   │   │   │   │   │   ├── AnnouncementMapper.java
│   │   │   │   │   │   └── BroadcastMapper.java
│   │   │   │   │   ├── group
│   │   │   │   │   │   └── GroupMapper.java
│   │   │   │   │   ├── redpacket
│   │   │   │   │   │   ├── PacketUUidMapper.java
│   │   │   │   │   │   ├── redpacketOperation
│   │   │   │   │   │   │   ├── ArithUtil.java
│   │   │   │   │   │   │   └── RedPacketOperation.java
│   │   │   │   │   │   └── UserReceivedMapper.java
│   │   │   │   │   └── user
│   │   │   │   │   ├── IpAddressMapper.java
│   │   │   │   │   └── UserMapper.java
│   │   │   │   ├── model
│   │   │   │   │   ├── common
│   │   │   │   │   │   └── HttpResult.java
│   │   │   │   │   ├── FeaturesObj
│   │   │   │   │   │   ├── Announcement.java
│   │   │   │   │   │   └── Broadcast.java
│   │   │   │   │   ├── group
│   │   │   │   │   │   └── Group.java
│   │   │   │   │   ├── redpacket
│   │   │   │   │   │   ├── PacketUUid.java
│   │   │   │   │   │   └── UserReceived.java
│   │   │   │   │   ├── user
│   │   │   │   │   │   ├── IpAddress.java
│   │   │   │   │   │   ├── User.java
│   │   │   │   │   │   └── ViewUser.java
│   │   │   │   │   └── vo
│   │   │   │   │   ├── GroupObject.java
│   │   │   │   │   └── UserGroup.java
│   │   │   │   ├── provider
│   │   │   │   │   ├── GroupProvider.java
│   │   │   │   │   ├── impl
│   │   │   │   │   │   ├── GroupProviderImpl.java
│   │   │   │   │   │   └── UserProviderImpl.java
│   │   │   │   │   └── UserProvider.java
│   │   │   │   ├── ServerRunner.java
│   │   │   │   ├── service
│   │   │   │   │   ├── FeaturesObj
│   │   │   │   │   │   ├── AnnouncementService.java
│   │   │   │   │   │   ├── BroadcastService.java
│   │   │   │   │   │   └── impl
│   │   │   │   │   │   ├── AnnouncementServiceImpl.java
│   │   │   │   │   │   └── BroadcastServiceImpl.java
│   │   │   │   │   ├── file
│   │   │   │   │   │   ├── FileServiceImpl.java
│   │   │   │   │   │   └── FileService.java
│   │   │   │   │   ├── group
│   │   │   │   │   │   └── GroupService.java
│   │   │   │   │   ├── impl
│   │   │   │   │   │   ├── group
│   │   │   │   │   │   │   └── GroupServiceImpl.java
│   │   │   │   │   │   ├── redpacket
│   │   │   │   │   │   │   ├── PacketUUidServiceImpl.java
│   │   │   │   │   │   │   └── UserReceivedServiceImpl.java
│   │   │   │   │   │   └── user
│   │   │   │   │   │   ├── IpAddressImpl.java
│   │   │   │   │   │   └── UserImpl.java
│   │   │   │   │   ├── redpacket
│   │   │   │   │   │   ├── PacketUUidService.java
│   │   │   │   │   │   └── UserReceivedService.java
│   │   │   │   │   └── user
│   │   │   │   │   ├── IpAddressService.java
│   │   │   │   │   └── UserService.java
│   │   │   │   └── util
│   │   │   │   ├── common
│   │   │   │   │   ├── errer
│   │   │   │   │   │   └── ErrerMsg.java
│   │   │   │   │   └── response
│   │   │   │   │   ├── Message.java
│   │   │   │   │   └── ResponseObj.java
│   │   │   │   ├── exception
│   │   │   │   │   └── ImplException.java
│   │   │   │   ├── exceptionhandler
│   │   │   │   │   └── GlobalExceptionHandler.java
│   │   │   │   ├── FtpUtil.java
│   │   │   │   ├── HttpClientUtil.java
│   │   │   │   ├── Md5Util.java
│   │   │   │   ├── RedisUtil.java
│   │   │   │   ├── SpringUtil.java
│   │   │   │   ├── task
│   │   │   │   │   └── RedpacketTimedtask.java
│   │   │   │   ├── UserUtil.java
│   │   │   │   ├── WebsocketClient.java
│   │   │   │   └── wsRunnable
│   │   │   │   └── WsRunnable.java
│   │   │   └── resources
│   │   │   ├── application-dev.yml
│   │   │   ├── application-prod.yml
│   │   │   └── application.yml
│   │   └── test
│   │   └── java
│   │   └── com
│   │   └── lb
│   │   ├── Test.java
│   │   └── TestXadminApplication.java
│   └── target
│   ├── classes
│   │   ├── application-dev.yml
│   │   ├── application-prod.yml
│   │   ├── application.yml
│   │   └── com
│   │   └── lb
│   │   ├── citybyip
│   │   │   └── SelectCityByIp.class
│   │   ├── common
│   │   │   └── BasesettingProperties.class
│   │   ├── config
│   │   │   ├── mybatis
│   │   │   │   └── MybatisPlusConfig.class
│   │   │   ├── redis
│   │   │   │   └── RedisConfig.class
│   │   │   ├── shiro
│   │   │   │   ├── CORSFilter.class
│   │   │   │   ├── LoginAuthorizationFilter.class
│   │   │   │   ├── MyInterceptor.class
│   │   │   │   ├── MySessionManager.class
│   │   │   │   ├── MyShiroRealm.class
│   │   │   │   ├── NbPassThruAuthenticationFilter.class
│   │   │   │   ├── NewRolesAuthorizationFilter.class
│   │   │   │   ├── RetryLimitCredentialsMatcher.class
│   │   │   │   └── ShiroConfig.class
│   │   │   └── swagger
│   │   │   ├── Swagger2Config$1.class
│   │   │   └── Swagger2Config.class
│   │   ├── controller
│   │   │   ├── criteria
│   │   │   │   ├── BroadcastWsBody.class
│   │   │   │   ├── GetPacketMessge.class
│   │   │   │   ├── GetRedPacketList.class
│   │   │   │   ├── GroupIdenttyCriteria.class
│   │   │   │   ├── Heartbeat.class
│   │   │   │   ├── LoginCriteria.class
│   │   │   │   ├── LoginManageCriteria.class
│   │   │   │   ├── OpenRedPacket.class
│   │   │   │   ├── RedpacketCriteria.class
│   │   │   │   └── UserSettingCriteria.class
│   │   │   ├── features
│   │   │   │   ├── FeaturesObjController$1.class
│   │   │   │   └── FeaturesObjController.class
│   │   │   ├── file
│   │   │   │   └── FileController.class
│   │   │   ├── group
│   │   │   │   └── GroupController.class
│   │   │   ├── redpacket
│   │   │   │   ├── redpacketAlgorithm
│   │   │   │   │   ├── ArithUtil.class
│   │   │   │   │   └── RedpacketAlgorithm.class
│   │   │   │   └── RedpacketController.class
│   │   │   └── user
│   │   │   └── UserController.class
│   │   ├── LbApplication.class
│   │   ├── mapper
│   │   │   ├── FeaturesObj
│   │   │   │   ├── AnnouncementMapper.class
│   │   │   │   └── BroadcastMapper.class
│   │   │   ├── group
│   │   │   │   └── GroupMapper.class
│   │   │   ├── redpacket
│   │   │   │   ├── PacketUUidMapper.class
│   │   │   │   ├── redpacketOperation
│   │   │   │   │   ├── ArithUtil.class
│   │   │   │   │   └── RedPacketOperation.class
│   │   │   │   └── UserReceivedMapper.class
│   │   │   └── user
│   │   │   ├── IpAddressMapper.class
│   │   │   └── UserMapper.class
│   │   ├── model
│   │   │   ├── common
│   │   │   │   └── HttpResult.class
│   │   │   ├── FeaturesObj
│   │   │   │   ├── Announcement.class
│   │   │   │   └── Broadcast.class
│   │   │   ├── group
│   │   │   │   └── Group.class
│   │   │   ├── redpacket
│   │   │   │   ├── PacketUUid.class
│   │   │   │   └── UserReceived.class
│   │   │   ├── user
│   │   │   │   ├── IpAddress.class
│   │   │   │   ├── User.class
│   │   │   │   └── ViewUser.class
│   │   │   └── vo
│   │   │   ├── GroupObject.class
│   │   │   └── UserGroup.class
│   │   ├── provider
│   │   │   ├── GroupProvider.class
│   │   │   ├── impl
│   │   │   │   ├── GroupProviderImpl.class
│   │   │   │   └── UserProviderImpl.class
│   │   │   └── UserProvider.class
│   │   ├── ServerRunner.class
│   │   ├── service
│   │   │   ├── FeaturesObj
│   │   │   │   ├── AnnouncementService.class
│   │   │   │   ├── BroadcastService.class
│   │   │   │   └── impl
│   │   │   │   ├── AnnouncementServiceImpl.class
│   │   │   │   └── BroadcastServiceImpl.class
│   │   │   ├── file
│   │   │   │   ├── FileService.class
│   │   │   │   └── FileServiceImpl.class
│   │   │   ├── group
│   │   │   │   └── GroupService.class
│   │   │   ├── impl
│   │   │   │   ├── group
│   │   │   │   │   └── GroupServiceImpl.class
│   │   │   │   ├── redpacket
│   │   │   │   │   ├── PacketUUidServiceImpl.class
│   │   │   │   │   └── UserReceivedServiceImpl.class
│   │   │   │   └── user
│   │   │   │   ├── IpAddressImpl.class
│   │   │   │   └── UserImpl.class
│   │   │   ├── redpacket
│   │   │   │   ├── PacketUUidService.class
│   │   │   │   └── UserReceivedService.class
│   │   │   └── user
│   │   │   ├── IpAddressService.class
│   │   │   └── UserService.class
│   │   └── util
│   │   ├── common
│   │   │   ├── errer
│   │   │   │   └── ErrerMsg.class
│   │   │   └── response
│   │   │   ├── Message.class
│   │   │   └── ResponseObj.class
│   │   ├── exception
│   │   │   └── ImplException.class
│   │   ├── exceptionhandler
│   │   │   └── GlobalExceptionHandler.class
│   │   ├── FtpUtil.class
│   │   ├── HttpClientUtil.class
│   │   ├── Md5Util.class
│   │   ├── RedisUtil.class
│   │   ├── SpringUtil.class
│   │   ├── task
│   │   │   └── RedpacketTimedtask.class
│   │   ├── UserUtil.class
│   │   ├── WebsocketClient$1.class
│   │   ├── WebsocketClient.class
│   │   └── wsRunnable
│   │   └── WsRunnable.class
│   ├── lb_back_end-eric-1.0-SNAPSHOT.jar.original
│   ├── maven-archiver
│   │   └── pom.properties
│   ├── maven-status
│   │   └── maven-compiler-plugin
│   │   ├── compile
│   │   │   └── default-compile
│   │   │   ├── createdFiles.lst
│   │   │   └── inputFiles.lst
│   │   └── testCompile
│   │   └── default-testCompile
│   │   ├── createdFiles.lst
│   │   └── inputFiles.lst
│   ├── surefire-reports
│   │   ├── 2019-11-13T15-02-44_045-jvmRun1.dumpstream
│   │   ├── 2019-11-13T15-04-06_504-jvmRun1.dump
│   │   ├── 2019-11-13T15-04-06_504-jvmRun1.dumpstream
│   │   ├── com.lb.TestXadminApplication.txt
│   │   └── TEST-com.lb.TestXadminApplication.xml
│   └── test-classes
│   └── com
│   └── lb
│   ├── Test$1.class
│   ├── Test.class
│   └── TestXadminApplication.class
├── lb_chat
│   ├── chatroom
│   │   ├── chat
│   │   │   ├── BOOT-INF
│   │   │   │   └── classes
│   │   │   │   ├── application.yml
│   │   │   │   └── jim.properties
│   │   │   └── META-INF
│   │   │   ├── MANIFEST.MF
│   │   │   └── maven
│   │   │   └── com.yb
│   │   │   └── chat-beta
│   │   │   ├── pom.properties
│   │   │   └── pom.xml
│   │   ├── pom.xml
│   │   ├── src
│   │   │   ├── main
│   │   │   │   ├── java
│   │   │   │   │   └── com
│   │   │   │   │   └── lb
│   │   │   │   │   ├── chat
│   │   │   │   │   │   ├── command
│   │   │   │   │   │   │   └── DemoWsHandshakeProcessor.java
│   │   │   │   │   │   ├── listener
│   │   │   │   │   │   │   └── ImDemoGroupListener.java
│   │   │   │   │   │   ├── model
│   │   │   │   │   │   │   ├── user
│   │   │   │   │   │   │   │   └── User.java
│   │   │   │   │   │   │   └── vo
│   │   │   │   │   │   │   └── UserGroup.java
│   │   │   │   │   │   ├── processor
│   │   │   │   │   │   │   ├── FlushUserProcessor.java
│   │   │   │   │   │   │   └── LoginServiceProcessor.java
│   │   │   │   │   │   ├── schedule
│   │   │   │   │   │   │   └── HeartTask.java
│   │   │   │   │   │   ├── service
│   │   │   │   │   │   │   ├── group
│   │   │   │   │   │   │   │   ├── GroupServiceImpl.java
│   │   │   │   │   │   │   │   └── GroupService.java
│   │   │   │   │   │   │   └── user
│   │   │   │   │   │   │   ├── UserServiceImpl.java
│   │   │   │   │   │   │   └── UserService.java
│   │   │   │   │   │   └── util
│   │   │   │   │   │   ├── errer
│   │   │   │   │   │   │   └── ErrerMsg.java
│   │   │   │   │   │   └── response
│   │   │   │   │   │   ├── Message.java
│   │   │   │   │   │   └── ResponseObj.java
│   │   │   │   │   ├── ChatServerApp.java
│   │   │   │   │   ├── provider
│   │   │   │   │   │   ├── GroupProvider.java
│   │   │   │   │   │   └── UserProvider.java
│   │   │   │   │   ├── ServerRunner.java
│   │   │   │   │   └── SpringUtil.java
│   │   │   │   └── resources
│   │   │   │   ├── application.yml
│   │   │   │   ├── jim.properties
│   │   │   │   └── ssl
│   │   │   │   ├── lotchat.nbet-group.com_chain.crt
│   │   │   │   ├── lotchat.nbet-group.com.jks
│   │   │   │   └── lotchat.nbet-group.com_key.key
│   │   │   └── test
│   │   │   └── java
│   │   │   └── com
│   │   │   └── yb
│   │   │   └── chat
│   │   │   └── ChatServerAppTest.java
│   │   └── target
│   │   ├── chat-beta-0.0.1.jar.original
│   │   ├── classes
│   │   │   ├── application.yml
│   │   │   ├── com
│   │   │   │   └── lb
│   │   │   │   ├── chat
│   │   │   │   │   ├── command
│   │   │   │   │   │   └── DemoWsHandshakeProcessor.class
│   │   │   │   │   ├── listener
│   │   │   │   │   │   └── ImDemoGroupListener.class
│   │   │   │   │   ├── model
│   │   │   │   │   │   ├── user
│   │   │   │   │   │   │   └── User.class
│   │   │   │   │   │   └── vo
│   │   │   │   │   │   └── UserGroup.class
│   │   │   │   │   ├── processor
│   │   │   │   │   │   ├── FlushUserProcessor.class
│   │   │   │   │   │   └── LoginServiceProcessor.class
│   │   │   │   │   ├── schedule
│   │   │   │   │   │   └── HeartTask.class
│   │   │   │   │   ├── service
│   │   │   │   │   │   ├── group
│   │   │   │   │   │   │   ├── GroupService.class
│   │   │   │   │   │   │   └── GroupServiceImpl.class
│   │   │   │   │   │   └── user
│   │   │   │   │   │   ├── UserService.class
│   │   │   │   │   │   └── UserServiceImpl.class
│   │   │   │   │   └── util
│   │   │   │   │   ├── errer
│   │   │   │   │   │   └── ErrerMsg.class
│   │   │   │   │   └── response
│   │   │   │   │   ├── Message.class
│   │   │   │   │   └── ResponseObj.class
│   │   │   │   ├── ChatServerApp.class
│   │   │   │   ├── provider
│   │   │   │   │   ├── GroupProvider.class
│   │   │   │   │   └── UserProvider.class
│   │   │   │   ├── ServerRunner.class
│   │   │   │   └── SpringUtil.class
│   │   │   ├── jim.properties
│   │   │   └── ssl
│   │   │   ├── lotchat.nbet-group.com_chain.crt
│   │   │   ├── lotchat.nbet-group.com.jks
│   │   │   └── lotchat.nbet-group.com_key.key
│   │   ├── generated-sources
│   │   │   └── annotations
│   │   ├── generated-test-sources
│   │   │   └── test-annotations
│   │   ├── maven-archiver
│   │   │   └── pom.properties
│   │   ├── maven-status
│   │   │   └── maven-compiler-plugin
│   │   │   ├── compile
│   │   │   │   └── default-compile
│   │   │   │   ├── createdFiles.lst
│   │   │   │   └── inputFiles.lst
│   │   │   └── testCompile
│   │   │   └── default-testCompile
│   │   │   ├── createdFiles.lst
│   │   │   └── inputFiles.lst
│   │   ├── surefire-reports
│   │   │   ├── com.yb.chat.ChatServerAppTest.txt
│   │   │   └── TEST-com.yb.chat.ChatServerAppTest.xml
│   │   └── test-classes
│   │   └── com
│   │   └── yb
│   │   └── chat
│   │   └── ChatServerAppTest.class
│   ├── chatroom.log
│   ├── chat接口文档10-12.docx
│   ├── j-im
│   │   ├── jim-common
│   │   │   ├── pom.xml
│   │   │   └── src
│   │   │   └── main
│   │   │   ├── java
│   │   │   │   └── org
│   │   │   │   └── jim
│   │   │   │   └── common
│   │   │   │   ├── cache
│   │   │   │   │   ├── CacheChangedVo.java
│   │   │   │   │   ├── CacheChangeType.java
│   │   │   │   │   ├── caffeine
│   │   │   │   │   │   ├── CaffeineCache.java
│   │   │   │   │   │   ├── CaffeineCacheManager.java
│   │   │   │   │   │   ├── CaffeineConfig.java
│   │   │   │   │   │   ├── CaffeineConfigurationFactory.java
│   │   │   │   │   │   ├── CaffeineConfiguration.java
│   │   │   │   │   │   ├── caffeine.properties
│   │   │   │   │   │   ├── CaffeineUtils.java
│   │   │   │   │   │   └── DefaultRemovalListener.java
│   │   │   │   │   ├── caffeineredis
│   │   │   │   │   │   ├── CaffeineRedisCache.java
│   │   │   │   │   │   ├── CaffeineRedisCacheManager.java
│   │   │   │   │   │   ├── RedisAsyncRunnable.java
│   │   │   │   │   │   └── RedisL2Vo.java
│   │   │   │   │   ├── ehcache
│   │   │   │   │   │   └── EhcacheConst.java
│   │   │   │   │   ├── ICache.java
│   │   │   │   │   ├── IL2Cache.java
│   │   │   │   │   ├── j2cache
│   │   │   │   │   │   └── J2Cache.java
│   │   │   │   │   └── redis
│   │   │   │   │   ├── ExpireVo.java
│   │   │   │   │   ├── JedisSubscriber.java
│   │   │   │   │   ├── JedisTemplate.java
│   │   │   │   │   ├── RedisCache.java
│   │   │   │   │   ├── RedisCacheManager.java
│   │   │   │   │   ├── RedisConfigurationFactory.java
│   │   │   │   │   ├── RedisConfiguration.java
│   │   │   │   │   ├── RedisExpireUpdateTask.java
│   │   │   │   │   ├── RedisLock.java
│   │   │   │   │   ├── RedissonTemplate.java
│   │   │   │   │   └── SubRunnable.java
│   │   │   │   ├── cluster
│   │   │   │   │   ├── ICluster.java
│   │   │   │   │   ├── ImClusterConfig.java
│   │   │   │   │   ├── ImCluster.java
│   │   │   │   │   ├── ImClusterVo.java
│   │   │   │   │   └── redis
│   │   │   │   │   ├── RedisClusterConfig.java
│   │   │   │   │   └── RedisCluster.java
│   │   │   │   ├── codec
│   │   │   │   │   ├── Decoder.java
│   │   │   │   │   └── Encoder.java
│   │   │   │   ├── CommandStat.java
│   │   │   │   ├── config
│   │   │   │   │   ├── Config.java
│   │   │   │   │   ├── DefaultImConfigBuilder.java
│   │   │   │   │   ├── ImConfigBuilder.java
│   │   │   │   │   └── PropertyImConfigBuilder.java
│   │   │   │   ├── http
│   │   │   │   │   ├── Cookie.java
│   │   │   │   │   ├── GroupContextKey.java
│   │   │   │   │   ├── handler
│   │   │   │   │   │   └── IHttpRequestHandler.java
│   │   │   │   │   ├── HttpConfig.java
│   │   │   │   │   ├── HttpConst.java
│   │   │   │   │   ├── HttpConvertPacket.java
│   │   │   │   │   ├── HttpMultiBodyDecoder.java
│   │   │   │   │   ├── HttpPacket.java
│   │   │   │   │   ├── HttpProtocol.java
│   │   │   │   │   ├── HttpRequestDecoder.java
│   │   │   │   │   ├── HttpRequest.java
│   │   │   │   │   ├── HttpResponseEncoder.java
│   │   │   │   │   ├── HttpResponse.java
│   │   │   │   │   ├── HttpResponseStatus.java
│   │   │   │   │   ├── HttpUuid.java
│   │   │   │   │   ├── KeyValue.java
│   │   │   │   │   ├── listener
│   │   │   │   │   │   └── IHttpServerListener.java
│   │   │   │   │   ├── Method.java
│   │   │   │   │   ├── MimeType.java
│   │   │   │   │   ├── RequestLine.java
│   │   │   │   │   ├── session
│   │   │   │   │   │   └── HttpSession.java
│   │   │   │   │   └── UploadFile.java
│   │   │   │   ├── ImAio.java
│   │   │   │   ├── ImClientGroupContext.java
│   │   │   │   ├── ImConfig.java
│   │   │   │   ├── ImConst.java
│   │   │   │   ├── ImDecoder.java
│   │   │   │   ├── ImPacket.java
│   │   │   │   ├── ImSessionContext.java
│   │   │   │   ├── ImStatus.java
│   │   │   │   ├── jim.properties
│   │   │   │   ├── listener
│   │   │   │   │   ├── AbstractImBindListener.java
│   │   │   │   │   └── ImBindListener.java
│   │   │   │   ├── message
│   │   │   │   │   ├── AbstractMessageHelper.java
│   │   │   │   │   └── MessageHelper.java
│   │   │   │   ├── packets
│   │   │   │   │   ├── ApplyJoinGroupBody.java
│   │   │   │   │   ├── AuthReqBody.java
│   │   │   │   │   ├── AuthRespBody.java
│   │   │   │   │   ├── BannedBody.java
│   │   │   │   │   ├── BroadcastBody.java
│   │   │   │   │   ├── ChangeManagerRespBody.java
│   │   │   │   │   ├── ChatBody.java
│   │   │   │   │   ├── ChatType.java
│   │   │   │   │   ├── Client.java
│   │   │   │   │   ├── CloseReqBody.java
│   │   │   │   │   ├── Command.java
│   │   │   │   │   ├── DelFriendRespBody.java
│   │   │   │   │   ├── DeviceType.java
│   │   │   │   │   ├── ExitGroupNotifyRespBody.java
│   │   │   │   │   ├── FlushUserReqBody.java
│   │   │   │   │   ├── GroupBannedBody.java
│   │   │   │   │   ├── GroupDescriptionBody.java
│   │   │   │   │   ├── GroupIntercalate.java
│   │   │   │   │   ├── Group.java
│   │   │   │   │   ├── GroupUpdateAgentBody.java
│   │   │   │   │   ├── HandshakeBody.java
│   │   │   │   │   ├── HasFriendReqBody.java
│   │   │   │   │   ├── HasFriendRespBody.java
│   │   │   │   │   ├── HeartbeatBody.java
│   │   │   │   │   ├── InsGroupRespBody.java
│   │   │   │   │   ├── JoinGroupResBody.java
│   │   │   │   │   ├── JoinGroupRespBody.java
│   │   │   │   │   ├── JoinGroupRespMsgBody.java
│   │   │   │   │   ├── JoinGroupResult.java
│   │   │   │   │   ├── LoginReqBody.java
│   │   │   │   │   ├── LoginRespBody.java
│   │   │   │   │   ├── Message.java
│   │   │   │   │   ├── MessageReqBody.java
│   │   │   │   │   ├── MsgType.java
│   │   │   │   │   ├── OutGroupBody.java
│   │   │   │   │   ├── RespBody.java
│   │   │   │   │   ├── User.java
│   │   │   │   │   ├── UserMessageData.java
│   │   │   │   │   ├── UserReqBody.java
│   │   │   │   │   └── UserUpdateBody.java
│   │   │   │   ├── protocol
│   │   │   │   │   ├── AbProtocol.java
│   │   │   │   │   ├── IConvertProtocolPacket.java
│   │   │   │   │   └── IProtocol.java
│   │   │   │   ├── Protocol.java
│   │   │   │   ├── session
│   │   │   │   │   └── id
│   │   │   │   │   ├── impl
│   │   │   │   │   │   └── UUIDSessionIdGenerator.java
│   │   │   │   │   └── ISessionIdGenerator.java
│   │   │   │   ├── SessionContext.java
│   │   │   │   ├── Status.java
│   │   │   │   ├── tcp
│   │   │   │   │   ├── TcpConvertPacket.java
│   │   │   │   │   ├── TcpPacket.java
│   │   │   │   │   ├── TcpProtocol.java
│   │   │   │   │   ├── TcpServerDecoder.java
│   │   │   │   │   ├── TcpServerEncoder.java
│   │   │   │   │   └── TcpSessionContext.java
│   │   │   │   ├── utils
│   │   │   │   │   ├── BASE64Util.java
│   │   │   │   │   ├── BufferUtil.java
│   │   │   │   │   ├── ChatKit.java
│   │   │   │   │   ├── DynamicEnumUtil.java
│   │   │   │   │   ├── HttpParseUtils.java
│   │   │   │   │   ├── ImKit.java
│   │   │   │   │   ├── ImUtils.java
│   │   │   │   │   ├── JsonKit.java
│   │   │   │   │   ├── Md5.java
│   │   │   │   │   └── SHA1Util.java
│   │   │   │   └── ws
│   │   │   │   ├── IWsMsgHandler.java
│   │   │   │   ├── Opcode.java
│   │   │   │   ├── WsConst.java
│   │   │   │   ├── WsConvertPacket.java
│   │   │   │   ├── WsPacket.java
│   │   │   │   ├── WsProtocol.java
│   │   │   │   ├── WsRequestPacket.java
│   │   │   │   ├── WsResponsePacket.java
│   │   │   │   ├── WsServerConfig.java
│   │   │   │   ├── WsServerDecoder.java
│   │   │   │   ├── WsServerEncoder.java
│   │   │   │   ├── WsSessionContext.java
│   │   │   │   └── WsTioUuid.java
│   │   │   └── resources
│   │   │   ├── chat.proto
│   │   │   ├── META-INF
│   │   │   │   └── MANIFEST.MF
│   │   │   └── protoc.exe
│   │   ├── jim-parent
│   │   │   ├── _cmd.bat
│   │   │   ├── install.bat
│   │   │   └── pom.xml
│   │   └── jim-server
│   │   ├── pom.xml
│   │   └── src
│   │   └── main
│   │   ├── java
│   │   │   └── org
│   │   │   └── jim
│   │   │   └── server
│   │   │   ├── command
│   │   │   │   ├── AbstractCmdHandler.java
│   │   │   │   ├── CmdHandler.java
│   │   │   │   ├── CommandConfigurationFactory.java
│   │   │   │   ├── CommandConfiguration.java
│   │   │   │   ├── CommandManager.java
│   │   │   │   ├── command.properties
│   │   │   │   └── handler
│   │   │   │   ├── AuthReqHandler.java
│   │   │   │   ├── BannedReqHandler.java
│   │   │   │   ├── BannedStateReqHandler.java
│   │   │   │   ├── BroadcastReqHandler.java
│   │   │   │   ├── ChatCheckedReqHandler.java
│   │   │   │   ├── ChatCheckHisReqHandler.java
│   │   │   │   ├── ChatCheckingReqHandler.java
│   │   │   │   ├── ChatReqHandler.java
│   │   │   │   ├── CloseReqHandler.java
│   │   │   │   ├── FlushUserReqHandler.java
│   │   │   │   ├── HandshakeReqHandler.java
│   │   │   │   ├── HasFriendHandler.java
│   │   │   │   ├── HeartbeatReqHandler.java
│   │   │   │   ├── JoinGroupReqHandler.java
│   │   │   │   ├── LoginReqHandler.java
│   │   │   │   ├── MessageReqHandler.java
│   │   │   │   ├── processor
│   │   │   │   │   ├── chat
│   │   │   │   │   │   ├── AsyncChatMessageProcessor.java
│   │   │   │   │   │   ├── BaseAsyncChatMessageProcessor.java
│   │   │   │   │   │   ├── ChatCmdProcessor.java
│   │   │   │   │   │   ├── DefaultAsyncChatMessageProcessor.java
│   │   │   │   │   │   └── MsgQueueRunnable.java
│   │   │   │   │   ├── CmdProcessor.java
│   │   │   │   │   ├── flushuser
│   │   │   │   │   │   └── FlushUserServiceProcessor.java
│   │   │   │   │   ├── group
│   │   │   │   │   │   └── GroupCmdProcessor.java
│   │   │   │   │   ├── handshake
│   │   │   │   │   │   ├── HandshakeCmdProcessor.java
│   │   │   │   │   │   ├── TcpHandshakeProcessor.java
│   │   │   │   │   │   └── WsHandshakeProcessor.java
│   │   │   │   │   └── login
│   │   │   │   │   └── LoginCmdProcessor.java
│   │   │   │   └── UserReqHandler.java
│   │   │   ├── handler
│   │   │   │   ├── AbstractProtocolHandler.java
│   │   │   │   ├── ImServerAioHandler.java
│   │   │   │   ├── ProtocolHandlerConfigurationFactory.java
│   │   │   │   ├── ProtocolHandlerConfiguration.java
│   │   │   │   ├── ProtocolHandlerManager.java
│   │   │   │   └── protocol_handler.properties
│   │   │   ├── helper
│   │   │   │   ├── db
│   │   │   │   │   └── MysqlMessageHelper.java
│   │   │   │   └── redis
│   │   │   │   ├── RedisImBindListener.java
│   │   │   │   └── RedisMessageHelper.java
│   │   │   ├── http
│   │   │   │   ├── annotation
│   │   │   │   │   └── RequestPath.java
│   │   │   │   ├── api
│   │   │   │   │   ├── HttpApiController.java
│   │   │   │   │   ├── TestController.java
│   │   │   │   │   └── WebImController.java
│   │   │   │   ├── DefaultHttpRequestHandler.java
│   │   │   │   ├── FileCache.java
│   │   │   │   ├── HttpProtocolHandler.java
│   │   │   │   └── mvc
│   │   │   │   └── Routes.java
│   │   │   ├── ImServerGroupContext.java
│   │   │   ├── ImServerStarter.java
│   │   │   ├── listener
│   │   │   │   ├── ImGroupListener.java
│   │   │   │   └── ImServerAioListener.java
│   │   │   ├── tcp
│   │   │   │   └── TcpProtocolHandler.java
│   │   │   ├── util
│   │   │   │   ├── ClassUtils.java
│   │   │   │   ├── HttpResps.java
│   │   │   │   ├── HttpServerUtils.java
│   │   │   │   └── TimerTaskUtil.java
│   │   │   └── ws
│   │   │   ├── WsMsgHandler.java
│   │   │   └── WsProtocolHandler.java
│   │   └── resources
│   │   ├── app.properties
│   │   ├── logback213123.properties
│   │   └── logback22222.xml
│   ├── LICENSE
│   └── README.md
├── lb-im.sql
├── vueworkspace
│   ├── chat-manage
│   │   ├── build
│   │   │   ├── build.js
│   │   │   ├── check-versions.js
│   │   │   ├── logo.png
│   │   │   ├── utils.js
│   │   │   ├── vue-loader.conf.js
│   │   │   ├── webpack.base.conf.js
│   │   │   ├── webpack.dev.conf.js
│   │   │   └── webpack.prod.conf.js
│   │   ├── config
│   │   │   ├── dev.env.js
│   │   │   ├── index.js
│   │   │   └── prod.env.js
│   │   ├── index.html
│   │   ├── package.json
│   │   ├── package-lock.json
│   │   ├── README.md
│   │   ├── src
│   │   │   ├── api
│   │   │   │   └── index.js
│   │   │   ├── App.vue
│   │   │   ├── assets
│   │   │   │   ├── base.css
│   │   │   │   └── logo.png
│   │   │   ├── components
│   │   │   │   ├── home.vue
│   │   │   │   └── login.vue
│   │   │   ├── main.js
│   │   │   └── router
│   │   │   └── index.js
│   │   └── static
│   ├── chat-mobile
│   │   ├── build
│   │   │   ├── build.js
│   │   │   ├── check-versions.js
│   │   │   ├── logo.png
│   │   │   ├── utils.js
│   │   │   ├── vue-loader.conf.js
│   │   │   ├── webpack.base.conf.js
│   │   │   ├── webpack.dev.conf.js
│   │   │   └── webpack.prod.conf.js
│   │   ├── config
│   │   │   ├── dev.env.js
│   │   │   ├── index.js
│   │   │   └── prod.env.js
│   │   ├── index.html
│   │   ├── package.json
│   │   ├── package-lock.json
│   │   ├── README.md
│   │   ├── src
│   │   │   ├── api
│   │   │   │   └── index.js
│   │   │   ├── App.vue
│   │   │   ├── assets
│   │   │   │   ├── css
│   │   │   │   │   └── base.css
│   │   │   │   ├── font
│   │   │   │   │   ├── iconfont.css
│   │   │   │   │   ├── iconfont.eot
│   │   │   │   │   ├── iconfont.svg
│   │   │   │   │   ├── iconfont.ttf
│   │   │   │   │   ├── iconfont.woff
│   │   │   │   │   └── iconfont.woff2
│   │   │   │   └── img
│   │   │   │   ├── hongbao.png
│   │   │   │   ├── iconbg.png
│   │   │   │   ├── kefu.png
│   │   │   │   ├── login_bg.png
│   │   │   │   ├── meetredbag.png
│   │   │   │   ├── null.jpg
│   │   │   │   └── successredbag.png
│   │   │   ├── components
│   │   │   │   ├── editUserInfo.vue
│   │   │   │   ├── Emotion
│   │   │   │   │   ├── Emotion.vue
│   │   │   │   │   └── index.vue
│   │   │   │   ├── home.vue
│   │   │   │   ├── login.vue
│   │   │   │   ├── register.vue
│   │   │   │   ├── status.vue
│   │   │   │   └── userdata.vue
│   │   │   ├── main.js
│   │   │   ├── mixins
│   │   │   │   └── index.js
│   │   │   ├── router
│   │   │   │   └── index.js
│   │   │   └── store
│   │   │   └── index.js
│   │   └── static
│   └── chat-pc
│   ├── build
│   │   ├── build.js
│   │   ├── check-versions.js
│   │   ├── utils.js
│   │   ├── vue-loader.conf.js
│   │   ├── webpack.base.conf.js
│   │   ├── webpack.dev.conf.js
│   │   └── webpack.prod.conf.js
│   ├── config
│   │   ├── dev.env.js
│   │   ├── index.js
│   │   └── prod.env.js
│   ├── index.html
│   ├── package.json
│   ├── package-lock.json
│   ├── README.md
│   ├── src
│   │   ├── api
│   │   │   └── index.js
│   │   ├── App.vue
│   │   ├── assets
│   │   │   ├── css
│   │   │   │   └── base.css
│   │   │   ├── font
│   │   │   │   ├── iconfont.css
│   │   │   │   ├── iconfont.eot
│   │   │   │   ├── iconfont.svg
│   │   │   │   ├── iconfont.ttf
│   │   │   │   ├── iconfont.woff
│   │   │   │   └── iconfont.woff2
│   │   │   └── images
│   │   │   ├── bg10.jpg
│   │   │   ├── bg11.jpg
│   │   │   ├── bg12.jpg
│   │   │   ├── bg13.jpg
│   │   │   ├── bg14.jpg
│   │   │   ├── bg15.jpg
│   │   │   ├── bg1.jpg
│   │   │   ├── bg2.jpg
│   │   │   ├── bg3.jpg
│   │   │   ├── bg4.jpg
│   │   │   ├── bg5.jpg
│   │   │   ├── bg6.jpg
│   │   │   ├── bg7.jpg
│   │   │   ├── bg8.jpg
│   │   │   ├── bg9.jpg
│   │   │   ├── checkin.png
│   │   │   ├── hongbao.png
│   │   │   ├── laba.png
│   │   │   ├── left-icon.png
│   │   │   ├── level_0.png
│   │   │   ├── level_10.png
│   │   │   ├── level_11.png
│   │   │   ├── level_12.png
│   │   │   ├── level_13.png
│   │   │   ├── level_14.png
│   │   │   ├── level_15.png
│   │   │   ├── level_16.png
│   │   │   ├── level_17.png
│   │   │   ├── level_18.png
│   │   │   ├── level_1.png
│   │   │   ├── level_2.png
│   │   │   ├── level_3.png
│   │   │   ├── level_4.png
│   │   │   ├── level_5.png
│   │   │   ├── level_6.png
│   │   │   ├── level_7.png
│   │   │   ├── level_8.png
│   │   │   ├── level_9.png
│   │   │   ├── login_bg.png
│   │   │   ├── logo.png
│   │   │   ├── malert.png
│   │   │   ├── meetredbag.png
│   │   │   ├── null.gif
│   │   │   ├── null.jpg
│   │   │   ├── nuoyun_kf.png
│   │   │   ├── profile_bg4.jpg
│   │   │   ├── qrcode.png
│   │   │   ├── right-icon.png
│   │   │   ├── sent.png
│   │   │   ├── skin10.jpg
│   │   │   ├── skin11.jpg
│   │   │   ├── skin12.jpg
│   │   │   ├── skin13.jpg
│   │   │   ├── skin14.jpg
│   │   │   ├── skin15.jpg
│   │   │   ├── skin1.jpg
│   │   │   ├── skin2.jpg
│   │   │   ├── skin3.jpg
│   │   │   ├── skin4.jpg
│   │   │   ├── skin5.jpg
│   │   │   ├── skin6.jpg
│   │   │   ├── skin7.jpg
│   │   │   ├── skin8.jpg
│   │   │   ├── skin9.jpg
│   │   │   └── successredbag.png
│   │   ├── components
│   │   │   ├── calendar.vue
│   │   │   ├── changepaw.vue
│   │   │   ├── customer.vue
│   │   │   ├── Emotion
│   │   │   │   ├── Emotion.vue
│   │   │   │   └── index.vue
│   │   │   ├── home.vue
│   │   │   ├── keyboard.vue
│   │   │   ├── login.vue
│   │   │   ├── register.vue
│   │   │   ├── userdata.vue
│   │   │   ├── usereditor.vue
│   │   │   ├── usersetting.vue
│   │   │   └── user.vue
│   │   ├── main.js
│   │   ├── mixins
│   │   │   └── index.js
│   │   ├── router
│   │   │   └── index.js
│   │   └── store
│   │   └── index.js
│   ├── static
│   ├── y
│   └── y.pub
└── 单服务器部署聊天室示例.txt

300 directories, 674 files

标签:

实例下载地址

WebSocket聊天室实现J-IM+SpringBoot+Zookeeper+Redis

不能下载?内容有错? 点击这里报错 + 投诉 + 提问

好例子网口号:伸出你的我的手 — 分享

网友评论

发表评论

(您的评论需要经过审核才能显示)

查看所有0条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

;
报警