3 Star 8 Fork 3

CoreCmd / open-source-netty-tcim

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
MIT

open-source-tcim

介绍

open-source-tcim,是基于netty的客户端+服务器简单即时通讯系统。服务端基于springboot,前端采用android开发;后端是简单的微服务架构,采用consul作为服务注册中心,服务端和网关服务需要注册到注册中心;前端对服务端的http请求都需要经过网关,登录session采用redis缓存,因此服务端可进行集群部署。

软件架构

tcim架构图

安装教程

  1. 搭建redis缓存服务器,具体搭建教程,可以参考我的博客: Centos7安装Redis5.0.3步骤
  2. 搭建mysql数据库服务器,具体搭建教程,可以参考我的博客: Docker部署Mysql
  3. 数据库服务器配置后,新建数据库,库名自定义,然后根据tc-im-server/src/main/resources/config/database.sql下的sql,新建数据库表。
  4. 搭建consul服务器,下载consul安装包到本地,具体安装方式请自行百度
  5. 克隆本仓库代码到本机,https://gitee.com/corecmd_chief/open-source-tcim.git
  6. 使用编辑器,例如idea,打开tc-im-common公用包,依赖下载完毕后,点击maven install将公用包安装到本地maven仓库
  7. 使用编辑器,例如idea,打开tcgateway网关项目,依赖下载完毕后,修改配置文件,将application-dev.yml 中的consul IP及端口修改为你自己的服务器配置,然后运行项目
  8. 使用编辑器,例如idea,打开tc-im-server项目,依赖下载完毕后,修改配置文件,将application-dev.yml 中的consul IP及端口修改为你自己的服务器配置,redis配置,fastdfs配置(目前还没有更新fastdfs的代码,请稍等),imserver的netty配置;修改数据库配置为你自己的配置。
  9. 运行tc-im-server项目,项目启动后,会提示项目正在你配置的im端口监听
  10. 访问tc-im-server 接口文档页面,例如: http://localhost:18900/doc.html,若出现此页面,则说明服务端项目部署成功 接口文档
  11. 使用androidstudio打开tc-im-android-client客户端项目,待项目构建完毕后,需要修改app/src/main/java/com/corecmd/tcloud/tcim/configs/ApiConfigs.java下的api配置,将api地址修改为你自己的网关地址,例如: http://192.168.1.4:17400/v1/im.注意,若你的服务部署在本机,那么api地址请不要使用127.0.0.1或者localhost,这是由于这两个ip在android中另有用处。可以使用:win+r-->cmd-->ipconfig查看本机ip地址。修改好配置后。运行客户端项目,进入到登录页面,如下所示:客户端登录页面
  12. 登录账号,你需要自行注册,注册地址为您的imserver接口文档页面,如下所示: tcim用户注册

系统演示

tcim客户端演示

后期优化

  1. 支持群聊
  2. 支持图片、视频、文件的传输
  3. 搭建fastdfs分布式文件服务器,具体搭建教程可参考:使用 FastDFS搭建文件服务器
  4. 仿微信朋友圈,发布动态功能。
  5. 以及视频上传时,自动生成静态图和动态图预览图片
  6. 聊天消息转发等

说明

本项目是为了学习netty而搭建,旨在给大家学习netty是提供一个参考。目前仅支持单聊,并且聊天内容仅支持文本。后续还需要优化一下项目,以达到支持图片、视频、文件等内容。至于android客户端的界面,也是本人简单构建的,毕竟我不是专业搞android的,有兴趣的同学可以继续优化一下客户端代码,然后我们一起优化一下它吧。

MIT License Copyright (c) 2021 CoreCmd Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

简介

corecmd的,基于netty的客户端+服务器简单即时通讯系统 展开 收起
Java
MIT
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
Java
1
https://gitee.com/corecmd_chief/open-source-tcim.git
git@gitee.com:corecmd_chief/open-source-tcim.git
corecmd_chief
open-source-tcim
open-source-netty-tcim
master

搜索帮助