TylooChat仿微信聊天室

1,108 阅读2分钟

前言

该项目初衷是供内部专网办公人员使用,互联网版本仅供大家娱乐(摸鱼),提意见交流用,不做他用,绿色聊天。

生产环境是作为第三方模块嵌入到现有系统中,单点登陆。集成现有系统的组织架构到通讯录中,不需要注册登陆。

本项目原身fork自genal-chat做了优化升级,感谢大佬Genal开源提供思路!

由于年底比较忙,目前还在抽空持续优化中,敬请期待!!!觉得还不错的话可以点个Star鼓励一下!!!

🏖 GitHub地址,如果觉得还不错感谢Star~!

🏖 线上聊天室地址

🚀 Electron版本客户端已出炉,详见release

🚀 欢迎各位大佬提提意见建议/Bug反馈 qq群289438105

tips: 绿色聊天,不要开车,不要上传太大的文件,服务器比较垃圾..

部分截图

  • 整体界面
  • 通讯录
  • 群聊功能(群成员列表,在线状态,支持添加群成员)

Electron版本客户端

位于electron_version分支

  • windows版本(exe)
  • mac版本(dmg)

功能介绍

  • 用户登陆注册(支持单点)
  • 群聊
    • 邀请好友加入群聊
    • 修改群名/群公告
  • 好友功能
  • 通讯录功能(支持接入第三方系统组织架构,直接发起聊天)
  • 聊天功能
    • Emoji表情包
    • 图片发送/图片预览
    • 发送附件
    • 消息分页
    • 消息撤回/复制
  • 自定义主题
  • 会话置顶/删除
  • 重连提醒
  • 智能助手(main分支 小冰机器人自动回复采用ES搜索引擎,需要手动创建ES词库)
  • 第三方API机器人(feature_APIROBOT分支 当前线上demo版本 自动回复内容请求第三方机器人接口)
  • Electron版本(electron_version分支 支持生成dmg,exe客户端)

技术栈

  • 前端

    • vue cli 4.x
    • Antd for vue
  • 后端

    • NestJS
    • TypeORM
    • Mysql
  • Socket.io

  • ElasticSearch ES搜索引擎(用于机器人快捷自动回复)

  • Nodejieba node版本中文分词器

环境准备

  • mysql
  • chat数据库 (需要手动创建,注意数据库编码格式为 utf8bm64``utf8bm64``utf8bm64 !!!)
  • node v10.16.3

拉取代码时注意事项

// windows系统需要配置一下,提交时转换为LF,检出时不转换
git config --global core.autocrlf input
// 设置为区分大小写
git config core.ignorecase false

运行项目

// client
cd client 
cnpm i
npm start
// server
cd server
cnpm i
npm start

如何部署

前后端分离方式部署,详见 Deploy

思路概述

此处目前没有细化,大致初始化过程如下

webSocket建立流程

TODO

  • @功能实现
  • 消息转发
  • 代码性能优化
  • 群聊功能继续完善
  • 微信快捷登陆
  • Electron客户端自动检查更新

感谢

logo取自iconfont