一款自建web版微信


一款自建web版微信

简介

Lumen IM 是一个网页版在线聊天项目前端使用 Naive UI + Vue3,后端采用 GO 开发。

功能模块

  • • 支持私聊及群聊

  • • 支持多种聊天消息类型 例如:文本消息、代码块、群投票、图片及其它类型文件,并支持文件下载

  • • 支持聊天消息撤回、删除(批量删除)、转发消息(逐条转发、合并转发)

  • • 支持编写笔记

项目预览

  • • 地址: http://im.gzydong.com

技术解析

  1. 1. WebSocket 协议 LumenIM的核心是WebSocket协议,这是一种在客户端和服务器之间建立长连接的技术,使得双向通信变得可能。这比传统的HTTP请求-响应模型更有效,因为它减少了延迟,提高了数据传输速度,尤其适合实时聊天场景。

  2. 2. Erlang/OTP Erlang是一种并发性极强、容错性高的编程语言,而OTP(Open Telephony Platform)是其生态系统的一部分,提供了丰富的库和设计模式。LumenIM选择Erlang/OTP作为基础,确保了系统的高可用性和稳定性,能够处理大量并发连接。

  3. 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;
    }
}
一款自建web版微信
一款自建web版微信
一款自建web版微信
一款自建web版微信

一款自建web版微信

原文始发于微信公众号(背带裤的云原生):一款自建web版微信

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/284556.html

(0)
李, 若俞的头像李, 若俞

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!