前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >一个.NET 7 + DDD + CQRS +React+Vite的实战项目

一个.NET 7 + DDD + CQRS +React+Vite的实战项目

作者头像
用户10786849
发布2023-10-13 08:44:32
2250
发布2023-10-13 08:44:32
举报
文章被收录于专栏:token的技术分享token的技术分享

项目简介

基于SignalR实现聊天通信,支持横向扩展,可支撑上万用户同时在线聊天

快速体验

http://server.tokengo.top:8888/ 可在这里快速体验使用,请注意目前只适配了PC端,请勿使用手机访问,可能出现样式不适应的情况, 当然如果你想要自己部署也可以,目前提供了docker compose镜像一键部署 下面是docker-compose代码

代码语言:javascript
复制
services:
  postgres:
    image: postgres:15.3-alpine3.18
    restart: always
    container_name: postgres
    ports:
      - 5432:5432
    networks:
      - chat
    environment:
      POSTGRES_USER: token
      POSTGRES_PASSWORD: dd666666
      POSTGRES_DB: Chat
    volumes:
      - ./postgres_data:/var/lib/postgresql/data

  redis:
    image: redis:alpine3.16
    restart: always
    container_name: redis
    ports:
      - 6379:6379
    networks:
      - chat
    command: redis-server --appendonly yes
    volumes:
      - ./redisdata:/data

  nginx:
    image: nginx:stable-alpine
    restart: always
    container_name: nginx
    networks:
      - chat
    ports:
      - 1080:80
    volumes:
      - ./nginx.conf:/etc/nginx/conf.d/default.conf

  chat-web:
    build:
      context: ./web
      dockerfile: ./Dockerfile
    container_name: chat-web
    image: registry.cn-shenzhen.aliyuncs.com/gotrays/chat-web
    restart: always
    depends_on:
     - redis
     - postgres
    networks:
      - chat

  chat-api:
    build:
      context: ./
      dockerfile: ./src/Chat.Service/Dockerfile
    container_name: chat-api
    image: registry.cn-shenzhen.aliyuncs.com/gotrays/chat-api
    restart: always
    depends_on:
     - redis
     - postgres
    networks:
      - chat

networks:
  chat:
    driver: bridge

注,容器并不会一次性启动成功,可能由首次启动的时候postgres未初始化成功导致Api服务启动失败,可能需要重启服务

后端架构

后端技术栈采用

  • .NET 7
  • PostgreSQL (业务数据库)
  • Redis(用于存放热点数据,和支持SignalR横向扩展)
  • MasaFramework(后端应用框架)+DDD(领域驱动设计)+CQRS(读写分离)

前端架构

  • React(Web版UI框架)
  • Vite(打包运行)
  • Semi(UI框架)
  • Avalonia(客户端版UI框架)

Web界面预览,

并且输入框支持直接cv图片,当我们点击发送的时候会将图片和文字拆分发送。

目前支持Gitee直接登录或输入账号密码登录,(Github由于服务器无法访问到Api暂时无法使用)

后端项目结构

项目开源地址

gitee:https://gitee.com/hejiale010426/chat

github https://github.com/239573049/chat

Chat后续计划

  • [x] 群聊聊天
  • [x] 群聊邀请好友
  • [x] 文件发送
  • [x] 图片发送
  • [x] 增加ChatGPT助手
  • [ ] 添加好友
  • [ ] 增加视频发送
  • [ ] 增加语言聊天
  • [ ] 增加视频聊天
  • [ ] 增加群聊管理
  • [ ] AT用户
  • [ ] ...如果还是更多需求请在github提issue
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-09-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 token的技术分享 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 项目简介
  • 快速体验
    • 后端架构
      • 前端架构
      • 目前支持Gitee直接登录或输入账号密码登录,(Github由于服务器无法访问到Api暂时无法使用)
      • 项目开源地址
      • Chat后续计划
      相关产品与服务
      容器服务
      腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档