Lumen IM 是一个网页版在线聊天项目,前端使用 Naive UI + Vue3,后端采用 GO 开发。
功能模块
-
• 支持私聊及群聊
-
• 支持多种聊天消息类型 例如:文本消息、代码块、群投票、图片及其它类型文件,并支持文件下载
-
• 支持聊天消息撤回、删除(批量删除)、转发消息(逐条转发、合并转发)
-
• 支持编写笔记
项目预览
-
• 地址: http://im.gzydong.com
技术解析
-
1. WebSocket 协议 LumenIM的核心是WebSocket协议,这是一种在客户端和服务器之间建立长连接的技术,使得双向通信变得可能。这比传统的HTTP请求-响应模型更有效,因为它减少了延迟,提高了数据传输速度,尤其适合实时聊天场景。
-
2. Erlang/OTP Erlang是一种并发性极强、容错性高的编程语言,而OTP(Open Telephony Platform)是其生态系统的一部分,提供了丰富的库和设计模式。LumenIM选择Erlang/OTP作为基础,确保了系统的高可用性和稳定性,能够处理大量并发连接。
-
3. 轻量级架构 LumenIM的设计原则是简洁和高效。它没有过度复杂的依赖,使得部署和维护变得简单,同时也降低了资源消耗,让中小型企业也能负担得起大规模的实时通信需求。
应用场景 社交应用:你可以利用LumenIM快速实现一对一或群组聊天、音视频通话等功能。协同办公:集成LumenIM后,团队成员可以实时交流,提高工作效率。在线教育:创建实时互动的课堂环境,支持师生间的即时答疑与讨论。游戏:实现玩家之间的实时对战和沟通,增强游戏体验。特点 高性能: 基于WebSocket和Erlang/OTP,保证消息的低延迟和高吞吐量。易于集成:提供清晰的API文档和示例代码,帮助开发者快速上手。高可靠性:借助Erlang的分布式特性,LumenIM具有良好的容错能力。可扩展性强:系统设计考虑了未来的功能扩展和负载增长,适应业务发展。开源免费:LumenIM遵循Apache 2.0许可证,允许自由使用、修改和分发。
安装
## 克隆项目源码包
git clone https://gitee.com/gzydong/LumenIM.git
或
git clone https://github.com/gzydong/LumenIM.git
## 安装项目依赖扩展组件
yarn install
# 启动本地开发环境
yarn dev
# 启动本地开发环境桌面客户端
yarn electron:dev
## 生产环境构建项目
yarn build
## 生产环境桌面客户端打包
yarn electron:build
修改 .env 配置信息
VITE_BASE_API=http://127.0.0.1:9503
VITE_SOCKET_API=ws://127.0.0.1:9504
关于 Nginx 的一些配置
server {
listen 80;
server_name www.yourdomain.com;
root /project-path/dist;
index index.html;
location / {
try_files $uri $uri/ /index.html;
}
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|flv|ico)$ {
expires 7d;
}
location ~ .*\.(js|css)?$ {
expires 7d;
}
}
版权声明:本站资源来自互联网收集,仅供用于学习和交流,请勿用于商业用途。如有侵权、不妥之处,请联系客服并出示版权证明以便删除!
::(呵呵)