{"id":15014325,"url":"https://github.com/kingston-csj/im","last_synced_at":"2025-05-15T10:03:30.019Z","repository":{"id":9124037,"uuid":"60956220","full_name":"kingston-csj/im","owner":"kingston-csj","description":"仿QQ即时通讯系统服务端","archived":false,"fork":false,"pushed_at":"2025-04-27T06:36:43.000Z","size":4399,"stargazers_count":556,"open_issues_count":3,"forks_count":210,"subscribers_count":39,"default_branch":"master","last_synced_at":"2025-04-27T07:28:09.296Z","etag":null,"topics":["chatroom","im","javafx","netty","qq","spring"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kingston-csj.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-06-12T08:32:29.000Z","updated_at":"2025-04-27T06:36:46.000Z","dependencies_parsed_at":"2024-04-12T11:35:42.170Z","dependency_job_id":"836b2dae-75f7-465d-af03-c9213790cce2","html_url":"https://github.com/kingston-csj/im","commit_stats":{"total_commits":95,"total_committers":4,"mean_commits":23.75,"dds":0.5789473684210527,"last_synced_commit":"1adc29b10ebf42959b16895cc2c2b31b3189a7a2"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kingston-csj%2Fim","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kingston-csj%2Fim/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kingston-csj%2Fim/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kingston-csj%2Fim/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kingston-csj","download_url":"https://codeload.github.com/kingston-csj/im/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254319716,"owners_count":22051072,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["chatroom","im","javafx","netty","qq","spring"],"created_at":"2024-09-24T19:45:28.577Z","updated_at":"2025-05-15T10:03:24.951Z","avatar_url":"https://github.com/kingston-csj.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"﻿## im(仿QQ聊天室服务端)\n\n使用springcloud alibaba微服务框架，以及netty通信框架，实现了类似QQ的聊天室服务端。聊天/推送使用netty通信框架，其他功能使用springcloud\nalibaba微服务框架。\n\n## 主要使用的第三方技术\n\n* jforgame-socket-netty，通信网关\n* springcloud alibaba 微服务框架\n* MybaticsPlus，持久化方案\n\n## 主要使用的中间件\n\n* mysql，用户，讨论群，消息等数据的持久化方案\n* minio，头像，多媒体消息的文件存储系统\n* redis，用户数据快速缓存\n* nacos，服务注册发现，配置管理\n\n## 模块组织结构\n\n``` git\nim-server\n├── im-account          --分布式节点，存储用户基础数据 \n├── im-business         --依赖模块，业务实体定义\n├── im-chat             --分布式节点，实时聊天服务，实时推送      \n├── im-common           --依赖模块，公共数据，包括工具类，常量类等        \n├── im-gateway          --分布式节点，springcloud gate搭建的网关       \n├── im-infrastructure   --依赖模块，公共基础设施，主要是权限相关\n├── im-oss              --依赖模块，oss文件存储服务，例如头像，多媒体消息等  \n├── im-security         --分布式节点，统一权限中心 \n├── im-web              --分布式节点，http统一入口，提供http接口\n```\n\n## 功能列表\n\n* 用户注册/登录\n* 好友搜索与添加\n* 点对点私聊(在线离线均可)\n* 讨论组\n* 聊天支持发送离线文件(在线用户支持在线高效传输)\n* 聊天支持从剪贴板复制图片或其他文件\n\n## QuickStart\n\n1. 安装git后，使用命令 git clone https://github.com/kingston-csj/im\n2. 安装docker-compose, 新建im文件目录,拷贝document目录下的docker-compose.yml文件到该目录，新建子目录im/data,在im目录下执行docker-compose\n   up -d启动mysql,minio,redis,nacos服务\n3. 执行docker cp命令拷贝im-web/src/test/resources/ddl目录下的im.sql到mysql容器内，新建数据库im，导入im.sql文件\n4. 首次本地部署，配置application.yml的emojiPath,avatarPath参数，安装im-chat/src/test/resources/目录下的表情包,头像包\n5. 进行nacos管理后台 http://ip:8848/nacos ,导入document目录下nacos配置(nacos_config_export.zip)，检查所有配置的信息，改为本地ip端口。\n   分别启动im-chat,im-gateway,im-web,im-account服务(使用IDEA编辑器的Services工具栏可实现批量启动)\n6. 另起新目录，下载客户端代码 git clone https://github.com/kingston-csj/wechat\n7. 启动ClientStartup类, 即可看到登录界面（临时密码为000）  \n   (多人聊天，开启多个ClientStartup客户端即可)\n\n## 部分客户端运行效果\n\n登录界面  \n![](/screenshots/login.png \"登录界面\")\n\n主界面  \n![](/screenshots/main.png \"主界面\")\n\n聊天界面  \n![](/screenshots/privateChat.jpg \"单人聊天界面\")\n\n讨论组界面  \n![](/screenshots/discussion.jpg \"讨论组界面\")\n\n## 案例教程\n\n栏目教程 --\u003e [csdn专栏博客](https://blog.csdn.net/littleschemer/article/category/9269527)  \nwiki说明 --\u003e [wiki](https://github.com/kingston-csj/im/wiki)\n\n## 客户端源代码\n\n--\u003e [客户端wechat](https://github.com/kingston-csj/wechat)\n\n## 欢迎交流讨论\n\n欢迎star/fork，欢迎学习/使用，期待一起贡献代码 !!  \n如果您发现bug，或者有任何疑问，请提交issue !!   \n  \n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkingston-csj%2Fim","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkingston-csj%2Fim","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkingston-csj%2Fim/lists"}