太强了!这款仿微信的聊天工具开源了!

news/2024/11/20 17:18:56/文章来源:https://www.cnblogs.com/codechen8848/p/18288368

大家好,我是 Java陈序员

问君能有几多愁,开源项目解千愁!

今天,给大家介绍一个开源的仿微信聊天工具,同时支持 PC 端、移动端!

关注微信公众号:【Java陈序员】,获取开源项目分享、AI副业分享、超200本经典计算机电子书籍等。

项目介绍

盒子IM —— 一个仿微信实现的网页版聊天软件,支持私聊、群聊、离线消息、发送语音、图片、文件、emoji 表情等功能,不依赖任何第三方收费组件。

功能特色:

  • 支持私聊、群聊、离线消息、发送语音、图片、文件、emoji 表情等功能
  • 聊天窗口支持已读未读显示,群聊支持@功能
  • 支持音视频通话(基于 Webrtc 实现,需要 SSL 证书)
  • 支持移动端和 Web 端同时在线,多端消息同步

技术栈:

  • 后端:SpringBoot + Netty
  • Web 端:Vue
  • 移动端:Uniapp

消息推送方案:

项目截图

PC 端

好友列表

私聊

群聊列表

群聊

个人信息设置

移动端

关注微信公众号:【Java陈序员】,后台回复「高仿微信」,获取项目地址和在线体验地址!

项目运行

前期准备

1、运行环境

  • JDK:1.8
  • Maven:3.6.3
  • MySQL:5.7
  • Redis:5.0
  • Minio
  • Node:v14.16.0

2、拉取代码

git clone https://gitee.com/bluexsx/box-im.git

3、代码目录结构

模块 功能
im-platform 与页面进行交互,处理业务请求
im-server 推送聊天消息
im-client 消息推送sdk
im-common 公共包
im-ui web页面
im-uniapp app页面

后端服务

1、将整个项目以 Maven 的形式导入到 IDEA 中

2、创建数据库

CREATE DATABASE 'box-im' DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;

3、执行 im-platfrom/resources/db 下的 db.sql 文件

4、修改 im-platform 模块的配置文件 application.yml 中的数据库、Redis、Minio 对应的连接地址信息

5、修改 im-server 模块的配置文件 application.yml 中的 Redis 对应的连接地址信息

6、分别执行主启动类 com.bx.implatform.IMPlatformAppcom.bx.imserver.IMServerApp 启动服务

Web 前端

1、进入到 im-ui 目录

cd im-ui

2、安装依赖

npm install

3、启动服务

npm run dev

4、浏览器访问

http://localhost:8080

移动端

1、将 im-uniapp 目录导入到 HBuilderX

2、安装依赖

npm install

3、点击 HBuilderX 顶部菜单栏中的运行

4、访问

http://localhost:5173

最后

推荐的开源项目已经收录到 GitHub 项目,欢迎 Star

https://github.com/chenyl8848/great-open-source-project

或者访问网站,进行在线浏览:

https://chencoding.top:8090/#/

大家的点赞、收藏和评论都是对作者的支持,如文章对你有帮助还请点赞转发支持下,谢谢!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/740422.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python 进度条tqdm

在编写Python脚本时,尤其是那些需要处理大量数据或者执行耗时操作的脚本,监控任务进度是非常重要。 tqdm的安装pip install tqdm -i https://pypi.tuna.tsinghua.edu.cn/simple/基本用法from tqdm import tqdm import timefor i in tqdm(range(100)):time.sleep(0.1) # 模拟…

zotero驯服第一期

初始学习网址:https://blog.csdn.net/m0_56896669/article/details/136580119 遇到问题:脚注里面有引用还有编号,PDF引用格式错误 Zotero中文社区:https://zotero-chinese.com/user-guide/ --相当于这个软件的百科全书 But 找了半天没找到想要的,用不明白,算了,…

一个难忘的json反序列化问题

前言 最近我在做知识星球中的商品秒杀系统,昨天遇到了一个诡异的json反序列化问题,感觉挺有意思的,现在拿出来跟大家一起分享一下,希望对你会有所帮助。 案发现场 我最近在做知识星球中的商品秒杀系统,写了一个filter,获取用户请求的header中获取JWT的token信息。 然后根…

windows mysql执行sql文件

背景 快速导入数据表或者数据库。 解决 直接执行sql文件。虽然直接复制内容也行,但是还是执行文件更好一些。登录mysql -u root -p -D xxx-D指定数据库的名称。如果不写,可以在进入mysql命令行后,使用use xxx来使用数据库。执行source xxx.sql特别注意,哪怕路径里有空格,外…

GERL论文阅读笔记

Graph Enhanced Representation Learning for News Recommendation论文阅读笔记 这篇文章是2020年的,也算是比较老的了,但是比较经典,这里来读一下 Abstract 存在的问题: ​ 现有的新闻推荐方法通过从新闻内容和用户与新闻的直接交互(如点击)中建立精确的新闻表征来实现个…

根轨迹不受增益的影响

%fileName:figure10_57.m s=tf(s); K=[25 125 250 500]; sysD=500*(s+4); rlocus(sysD); grid on sysGq=0.4*(s+0.25)/((s-1.6+2.8*j)*(s-1.6-2.8*j)*(s+3.4)*(s+20)); rlocus(sysGq); grid on %sysGz=feedback(series(sysD,sysGq),1); %应该是开环传递函数的根轨迹,这个闭环的…

Spring Boot3整合Mybatis Plus,数据库为MySQL

项目结构如下:注意不需要任何XML文件 1.导入依赖 除了Spring Boot创建时自带的依赖,还需要加入: <!-- Mybatis Plus依赖--> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-spring-boot3-starter</artifactId>…

将.nuget文件夹从C盘移到其它盘,再也不用担心的C盘爆红了

将.nuget文件夹从C盘移到其它盘,再也不用担心的C盘爆红了 命令 查看缓存文件夹的具体路径 dotnet nuget locals all --list第一步 在文件资源管理器输入%AppData%\NuGet\NuGet.Config ,默认存放NuGet.Config的路径,具体情况可能根据你的电脑来操作。 增加配置<config>…

网络测速

网络测速🥏 https://speed.cloudflare.com/

新知识get,vue3是如何实现在style中使用响应式变量?

这篇文章我们来讲讲vue是如何实现在style中使用script模块中的响应式变量前言 vue2的时候想必大家有遇到需要在style模块中访问script模块中的响应式变量,为此我们不得不使用css变量去实现。现在vue3已经内置了这个功能啦,可以在style中使用v-bind指令绑定script模块中的响应…

Address Sanitizer

Address Sanitizer Introduction ​ Address Sanitizer是一款内存检测器,它可以检测在堆栈,全局变量等地方的溢出。后来被整合到了GCC等编译器中,Address Sanitizer由两部分组成:一个Instrumentation模块和一个运行时库。Instrumentation模块修改代码来检查每个内存访问的影…

暂停windows更新方法

暂停windows更新方法暂停windows更新方法 打开注册表进入 计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsUpdate\UX\Settings右键新建DWORD的32位,输入名称:FlightSettingsMaxPauseDays选择十进制,输入3650天网站:http://shibowl.topgithub:https://github.com/ha…