Nodejs nestjs+vue+ts 打造一个酷炫的星空聊天室
Nodejs nestjs+vue+ts 打造一个酷炫的星空聊天室
项目简介
😛 闲暇时间想做一个聊天室复盘一下这些年学习到的技术,于是就开始了阿童木聊天室的开发之旅 😈 项目采用全 typescript 开发,这是为了以后的功能迭代打基础.当然,我本身也是很喜欢 typescript 的 🧐 今后会陆续开发很多酷炫的功能,喜欢的朋友给个 star 鼓励一下我吧!
项目界面
项目技术
前端: vue + vue-router + vuex + socket.io + typescript + antd
后端: nestjs + nestjs/websocket + typescript
数据库表结构设计
功能介绍
- 更改用户名 /头像上传
- 群聊 /私聊
- 新增群 /加入群聊 /模糊搜索群
- 添加好友 /模糊搜索好友
- 表情包
- 消息分页
作者
github: edison
项目仓库
github: genal-chat
线上演示
sixsixsix
看起来和 fiora 很像 emmm,用的东西
是的 ui 上确实的参考 fiora 的 技术上碎碎大佬也给了一些支持
666
私聊消息表不要放在一起,时间长了就会膨胀的特别厉害
你听唔到我再肛,再听唔到我再肛,肛到你听到为止,都系果六个字 对唔住非凡哥
有什么好办法吗
SSS
听起来好复杂啊 一个好友一张表很奇怪耶
根据关系建表就行= =,这种看人喜好
要是玩具就随意了,我的想法来源是:QQ 在全国有多少用户,一个用户说一句话,那这个表就多少行了?
聊天室做了在线人数统计, 进来聊聊技术吧
https://www.genal.fungenal.fun
聊天室做了在线人数统计, 进来聊聊技术吧
https://www.genal.fun
打造一个基于 Node.js、NestJS、Vue 和 TypeScript 的酷炫星空聊天室是一个既有趣又富有挑战性的项目。以下是一个简要的实现思路和部分代码示例,帮助你快速上手。
后端(NestJS)
-
安装 NestJS:
npm i -g [@nestjs](/user/nestjs)/cli nest new starry-chat cd starry-chat
-
创建 WebSocket Gateway:
import { WebSocketGateway, WebSocketServer, SubscribeMessage, MessageBody } from '[@nestjs](/user/nestjs)/websockets'; import { Server, Socket } from 'socket.io'; [@WebSocketGateway](/user/WebSocketGateway)() export class ChatGateway { @WebSocketServer() server: Server; @SubscribeMessage('message') handleMessage(@MessageBody() message: string): string { this.server.emit('message', message); return 'Message received'; } }
前端(Vue + TypeScript)
-
安装 Vue CLI 并创建项目:
npm install -g [@vue](/user/vue)/cli vue create starry-chat-frontend cd starry-chat-frontend
-
安装 Socket.IO 客户端:
npm install socket.io-client
-
在 Vue 组件中连接 WebSocket:
import { io } from 'socket.io-client'; const socket = io('http://localhost:3000'); socket.on('message', (msg: string) => { console.log(msg); }); const sendMessage = (message: string) => { socket.emit('message', message); };
星空背景
使用 CSS 或 SVG 来实现星空背景,并结合 Vue 的动态数据绑定来展示聊天消息。这样,一个基本的星空聊天室就完成了。你可以进一步美化界面,增加用户认证、消息存储等功能。