Repolode
SAMA-Communications

SAMA-Communications/sama-server

基于 uWebSockets.js 的聊天服务器,提供区别于 XMPP 的消息协议方案,使用 Node.js、MongoDB 和 Redis。

Star
161
Fork
16
未关闭 Issue
3
最近提交
上个月

这是什么?

SAMA 是一个聊天服务器与消息协议,旨在作为 XMPP 这一长期占据主流的即时通讯标准的替代方案。服务端基于 Node.js 使用 JavaScript 编写,通过 uWebSockets.js 处理 WebSocket 连接,数据存储在 MongoDB 中,集群状态则由 Redis 维护。

服务端提供用户、会话、消息、活动、通讯录和推送通知等 API。官方的 Web 客户端和 Flutter 客户端分别位于独立仓库,并提供公共云环境用于测试完整技术栈。

集群中的节点通过 Redis 中的记录相互发现,之间建立 WebSocket 连接,并能清理已下线节点遗留的数据。

核心功能

  • 01基于 uWebSockets.js 和 Node.js 构建的聊天服务器
  • 02使用 MongoDB 存储数据,Redis 负责集群协调
  • 03提供用户、会话、消息和推送通知等 API
  • 04支持多节点集群,节点自动发现并在断线后重连
  • 05包含通讯录和活动相关的 API

适用场景

  • 搭建自托管的聊天后端,替代 XMPP 方案
  • 运行可跨多个 Node.js 节点扩展的消息服务
  • 基于现有 Web 或 Flutter 客户端快速验证聊天类产品

使用前须知

  • 需要 MongoDB 和 Redis 作为后端依赖。
  • 采用 GPL-3.0 许可证,这是一种 copyleft 许可证,对衍生作品有相应义务。
  • README 将本地开发和部署指南指向外部文档,而非直接给出安装步骤。

标签

常见问题

sama-server 是什么?
基于 uWebSockets.js 的聊天服务器,提供区别于 XMPP 的消息协议方案,使用 Node.js、MongoDB 和 Redis。 SAMA 是一个聊天服务器与消息协议,旨在作为 XMPP 这一长期占据主流的即时通讯标准的替代方案。服务端基于 Node.js 使用 JavaScript 编写,通过 uWebSockets.js 处理 WebSocket 连接,数据存储在 MongoDB 中,集群状态则由 Redis 维护。
sama-server 可以免费使用吗?用的什么许可证?
sama-server 以 GPL-3.0 许可证开源。用于商业产品前,请先确认许可证条款。
sama-server 还在维护吗?
半年内有更新。sama-server 最近一次提交是在 2026年10月5日。
sama-server 适合用来做什么?
搭建自托管的聊天后端,替代 XMPP 方案 运行可跨多个 Node.js 节点扩展的消息服务 基于现有 Web 或 Flutter 客户端快速验证聊天类产品
在哪里获取 sama-server?
源代码和安装说明在 GitHub 上:https://github.com/SAMA-Communications/sama-server

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目