# Magical-Chat
用到的技术栈:
`React` + `Koa` + MySQL + JWT + Socket.io 的即时通讯聊天室。
用到的库:
emoji-pick-react + react-toastify + uuid + @koa/cors + axios + react-icons + styled-components
目前实现的功能:
* 根据 QQ号 或 随机数 生成头像
* 基于 rem + 媒体查询的 移动端适配(虽然有点鸡肋)
* 为了提高用户体验,利用 scrollIntoView API 搭配 useRef,实现了聊天窗口滚动显示最新的消息的功能
* 利用 socket.io 生成 WebSoet 服务器,实现了文字消息和 emoji 表情的实时发送,分别实现了群聊和私聊两种通信方式
待开发:
* 消息提醒与消息已读
* 展示用户 GitHub 或 blog 链接
* 根据消息,实时更新用户列表顺序
* ...
开发时需要注意的坑点:
* MySQL 如果要支持emoji,字符集需要默认是`utf8mb4`,因为`utf8`只能存储 3 字节 ,而一般的 emoji 表情是 4 字节
部署时需要注意的坑点:
* 启动端口后如果没响应先看看是否放行了改端口。
* PM2 在使用时需要注意 Nodejs 的版本是否和本地 Nodejs 一致。
* React 在部署时 `package.json` 记得加上 `"homepage":".",` 字段。
* 如果后端升级成了 HTTPS,一定要注意前端在 socket 连接时用 `wss` 而不是 `ws`.
* 因为数据库字符集是`utf8mb4`,使用建议使用本地的数据库连接远程服务器,然后导入项目,会方便很多。
* 入口文件中端口号如果是 配置文件 `env` 中定义的常量的话,启动目录一定要和 `env` 是同级,不然访问不到pm2访问不到。
* 如果前端升级成了 `HTTPS`,后端接口也需要部署 `SSL` 证书 升级成 `HTTPS` 才能访问资源,方法是在 PM2管理器 中映射一个新的子域名即可。
没有合适的资源?快使用搜索试试~ 我知道了~
基于 React + Koa + MySQL + JWT + Socket.io 的即时通讯聊天室。.zip
共82个文件
js:39个
jsx:13个
png:8个
0 下载量 152 浏览量
2024-08-31
11:02:55
上传
评论
收藏 3.4MB ZIP 举报
温馨提示
项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松copy复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全栈开发),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助 【资源内容】:项目具体内容可查看/点击本页面下方的*资源详情*,包含完整源码+工程文件+说明(若有)等。【若无VIP,此资源可私信获取】 【本人专注IT领域】:有任何使用问题欢迎随时与我联系,我会及时解答,第一时间为您提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 【适合场景】:相关项目设计中,皆可应用在项目开发、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面中 可借鉴此优质项目实现复刻,也可基于此项目来扩展开发出更多功能 #注 1. 本资源仅用于开源学习和技术交流。不可商用等,一切后果由使用者承担 2. 部分字体及插图等来自网络,若是侵权请联系删除,本人不对所涉及的版权问题或内容负法律责任。收取的费用仅用于整理和收集资料耗费时间的酬劳 3. 积分资源不提供使用问题指导/解答
资源推荐
资源详情
资源评论
收起资源包目录
基于 React + Koa + MySQL + JWT + Socket.io 的即时通讯聊天室。.zip (82个子文件)
DSmysqlffv1
Magical-Chat-React
craco.config.js 796B
src
index.jsx 476B
assets
picture
avater_4.png 286KB
robot.gif 1.57MB
avater_2.png 13KB
avater_5.png 790KB
avater_1.png 262KB
github.png 7KB
avater_3.png 2KB
loader.gif 232KB
services
request
config.js 0B
index.js 188B
index.js 973B
utils
api.js 915B
index.js 2KB
.prettierignore 14B
App.js 399B
components
Contacts.jsx 7KB
Github.jsx 2KB
Welcome.jsx 938B
ChatInput.jsx 4KB
ChatContainer.jsx 4KB
Logout.jsx 2KB
view
Login.jsx 3KB
UserData.jsx 5KB
Chat.jsx 2KB
Avater.jsx 2KB
Register.jsx 3KB
router
index.js 726B
hooks
Chat.js 1KB
Message.js 3KB
Contacts.js 1KB
Avater.js 2KB
Scorll.jsx 2KB
GetMessage.js 4KB
Users.js 854B
index.css 387B
package.json 1KB
public
logo512.png 9KB
manifest.json 492B
robots.txt 67B
logo192.png 5KB
favicon.ico 8KB
index.html 2KB
package-lock.json 1.19MB
.prettierrc.json 3B
.gitignore 331B
README.md 15B
Magical-Chat-Koa
.env 101B
src
app
database.js 796B
index.js 678B
main.js 1008B
controller
avatar.controller.js 1KB
login.controller.js 728B
user.controller.js 2KB
message.controller.js 2KB
file.controller.js 617B
utils
handle-error.js 948B
md5-password.js 381B
middleware
file.middleware.js 255B
login.middleware.js 2KB
user.middleware.js 2KB
service
file.service.js 535B
message.serve.js 1KB
user.service.js 2KB
sql.sql 5KB
router
login.router.js 383B
file.router.js 458B
message.router.js 662B
index.js 604B
avatar.router.js 421B
user.router.js 628B
config
error.js 423B
keys
private.key 2KB
public.key 613B
server.js 165B
screct.js 345B
package.json 618B
package-lock.json 128KB
.gitignore 59B
.gitignore 331B
README.md 2KB
共 82 条
- 1
资源评论
热爱技术。
- 粉丝: 3022
- 资源: 7865
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- DeepSeek多种交互方式详解-网页端、API、手机APP的使用方法与特性
- 基于改进DeepLabV3+模型的遥感图像语义分割.pdf
- 模型直升 机非线性动力学建模与控制仿 真.pdf
- 基于事件的社交网络数据管理技术研究综述.pdf
- 枝节状多频段微带天线的谐振机制与设计方法研究.pdf
- 基于文本相似度的搜索推荐点击预测模型.pdf
- 基于iki-means++的抗相似性攻击轨迹匿名算法.pdf
- 基于Python爬虫关于独生子女对双方父母养老态度的分析.pdf
- 基于HSI空间的Retinex低照度图像增强算法.pdf
- 分布式渲染管理系统的设计.pdf
- 昆明市乡镇边界,shp格式
- 长春市乡镇边界,shp格式
- 踝关节康复机器人研究进展.pdf
- 大学生在线学习监控系统的设计与实现.pdf
- 基于神经网络分数阶PIaD β控制的智能车研究.pdf
- 图像隐写分析研究新进展.pdf
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功