开源版IM聊天系统,即时通信源码,支持音视频和付费进群,私聊/群聊直播
高效转化聊天工具——打造一个聊天室平台,将任何网站转变为蓬勃发展的社区,提升用户参与度并带来收益。该平台功能强大,集群聊、一对一聊天、视频和音频聊天以及人工智能于一体。


🐕 狗凯源码库 · bbbb.bid
功能介绍与技术架构全解
本文基于对源码的实际审计与功能梳理写成:功能矩阵、技术栈、音视频与第三方服务选型、实时通讯机制、并发承载能力与扩容建议,一文讲透。所有结论均来自代码本身,非官方宣传文案。即时通讯/即时通信
类型 群聊 + 私聊 + 直播 + 社区语言 PHP 8.0+架构 AJAX 轮询 / Swoole WebSocket音视频 LiveKit + Agora(声网)页面 PWA 渐进式应用
源码下载
https://bbbb.bid/shop/40944.html
一、产品定位
Grupo Chat 是一套网页版多人聊天室 / 社区系统(类 Discord + Zoom + Telegram 的混合体),无需 App,浏览器打开即用,支持 PWA 安装到手机桌面。核心场景:兴趣社群、在线课堂、客服群聊、直播互动、付费会员社区。
💬
群聊 + 私聊
多类型群组(公开/私密/密码/年龄限制/付费)、私聊、转发、引用、必达
🎥
音视频直播
视频/语音聊天室、摄像头直播、屏幕共享,LiveKit/Agora 双方案
💰
钱包商业化
充值/提现/打赏/付费入群/会员套餐,20+ 支付网关与加密货币
🛡️
安全风控
防火墙、IP/指纹封禁、内容审核、频率限制、人机验证
二、功能矩阵
💬 消息与聊天
群组体系:公开 / 私密 / 密码保护 / 年龄限制 / 付费入群 / 审核加入 / 自动加入;群分类、群角色(群主-管理员-成员自定义角色)、群 SLUG 自定义链接、群封面与背景、嵌入第三方网页(embed)
消息能力:文字、表情、贴纸、GIF(Giphy/Klipy)、图片、视频、音频、文件附件、位置分享、链接预览、语音消息;消息回复/引用、转发、置顶、编辑、撤回、已读回执、正在输入、@提及(@所有人)、投票、定时消息、广播消息、聊天记录导出、清屏
私聊体系:一对一私聊、私聊视频/语音、陌生人私信开关、好友系统(申请/忽略/黑名单)、附近的人
直播互动:摄像头直播(Camera Broadcasting)、观众列表、直播间弹幕互动、Live Cam
💰 商业化
钱包系统:用户充值、提现申请、站内转账流水、发票下载(PDF)、银行转账凭证审核
变现路径:付费会员套餐(到期管理、专属权益)、付费入群、消息打赏(Tips)、广告位系统(可管理,本定制版已移除)
支付网关(20+):Stripe、PayPal、Razorpay、Mollie、Authorize.Net、iyzico、Paysera、PayTR、Flutterwave、PayUni、Maya、toyyibpay、aamarPay、Pesapal、Paymentwall;加密货币:Binance Pay、Coinbase、NOWPayments;对公银行转账
🎨 内容与社区
自定义页面(隐私政策/条款)、自定义菜单、自定义用户字段、自定义 CSS/JS、页头页脚代码注入(统计代码等)
音频播放器(站内音乐电台)、电台当前播放(laut.fm)、小游戏(分类管理)、徽章系统、表情包商店、贴纸包管理
落地页(Landing Page)带动画 Hero、FAQ、群组展示、套餐展示;幻灯片管理、群组头图管理
游客登录(免注册体验)、邀请注册、假人/机器人用户生成(Faker 批量造号)、虚假在线人数
🛡️ 安全与审核
防火墙:IP 黑名单、设备指纹封禁、登录尝试限制、频率控制( Flood Control )、每日发送上限、API 密钥机制
内容审核:脏话过滤(含严格模式)、图片 AI 审核(Sightengine / Google Cloud Vision,可按裸露/暴力分级设阈值)、链接过滤、邮件域名白名单校验、HTMLPurifier 防 XSS
人机验证:hCaptcha、Google reCAPTCHA v2、Cloudflare Turnstile、Friendly Captcha
⚙️ 管理后台(内嵌聊天界面)
用户管理:封禁/解封、角色权限体系(站点角色 + 权限矩阵细到每个按钮)、代登录(Login As)、批量导入用户
多语言管理(添加语言/翻译/导入导出 JSON)、推送通知配置、计划任务(Cron Jobs)、系统信息与缓存重建
站内通知(@提醒、邀请、徽章)、邮件营销(Brevo / sender.net 订阅同步)
三、技术栈
层面技术说明后端语言PHP ≥ 8.0(推荐 8.0~8.2)严格类型声明(declare(strict_types=1))、命名空间、单例 Registry 容器数据库MySQL / MariaDB(utf8mb4)ORM 使用 Medoo(轻量查询构造器),PDO 长连接(ATTR_PERSISTENT),62 张表实时通讯Swoole WebSocket 或 AJAX 轮询二选一,后台可切换;WS 默认端口 9502 + 内部 TCP 监听端口缓存文件缓存 / Redis(可选)设置、语言、CSS/JS 合并产物均落 assets/cache/,高并发可切 Redis前端jQuery + Bootstrap 5 + 原生模块非 SPA;合并压缩 JS/CSS(带时间戳缓存指纹);SVG 图标字体;暗色/亮色双主题实时前端livekit-client(UMD)音视频通话/直播客户端富文本Summernote自定义页面编辑PDFDomPDF钱包发票等单据生成图片处理GD / Imagick(可选)+ FFmpeg(可选)头像裁剪、图片压缩、视频压缩与缩略图登录认证Hybridauth(40+ OAuth Provider)Google/Facebook/Apple/Twitter 等,后台按 Provider 配置密钥密码存储password_hash() Bcrypt兼容旧版 MD5+Salt 自动升级云存储本地 / Amazon S3(官方 SDK)上传文件可切 S3 兼容存储推送Webpushr / OneSignal / Firebase FCMWeb Push 通知(离线消息、好友申请等事件)架构风格模块化函数路由(非 MVC 框架)fns/{load,add,update,remove,form} 按动作分目录、按文件名动态加载,带 file_exists 守卫
架构点评:不用 Laravel/Symfony 重框架,裸 PHP + Medoo + 模块化函数,性能开销小、部署门槛低(虚拟主机都能跑),代价是代码组织偏过程式,二次开发需要熟悉它的 Registry / load 约定。
四、音视频、多语言与第三方服务
“视频用什么、语言用什么”——这是这套系统最核心的外部依赖清单,全部来自源码实际引用:
🎥 音视频:双方案并存(SFU 架构)
服务在源码中的角色部署要求LiveKit 主推前端加载 livekit-client.umd.min.js(jsdelivr CDN);服务端集成 LiveKit Server SDK(Twirp 协议,Token 签发)需自建/租用 LiveKit Server(开源,可 Docker 自部署),填 API Key/Secret 与 WS 地址Agora 声网内置 AgoraDynamicKey(Token 动态密钥生成),前端 SDK 从 download.agora.io 拉取注册 Agora 控制台拿 App ID + 证书,国内节点质量好,按用量计费(有免费额度)
支撑的场景:群组视频聊天、群组语音聊天、摄像头直播(含观众观看)、屏幕共享、私聊音视频通话。都是 WebRTC SFU 架构——服务器转发多路流,浏览器之间不直连,穿透率和手机端体验都有保障。录音不经过第三方:语音消息走浏览器录音 → 本站/S3 存储。
成本提示:音视频不吃你 Web 服务器的带宽,吃 LiveKit/Agora 服务器的流量。自建 LiveKit 推荐 3~5Mbps 上行/人的独享带宽云主机;用 Agora 则按分钟计费。
🗣️ 多语言:自建翻译系统(非外部服务)
语言不走任何第三方 API,是内置的数据库翻译表(gr_languages + gr_language_strings,1100+ 字符串条目):后台添加语言 → 逐条翻译或 JSON 导入导出 → 一键切默认语言 → 用户可自选界面语言(含 RTL 从右到左支持,适配阿拉伯语等)。中文站做简体化就是把这个翻译表灌成中文。
🧩 其余第三方服务清单
类别支持的服务默认状态GIF 图库Giphy、Klipy(双引擎可切换)关闭,填 API Key 启用短信验证Twilio、MessageBird关闭Web 推送Webpushr、OneSignal、Firebase FCM关闭AI 聊天机器人OpenRouter(可接 GPT/Claude 等任意模型)关闭图片内容审核Sightengine、Google Cloud Vision关闭,支持分级阈值IP 情报ipdata.co(防火墙/附近的人)启用人机验证hCaptcha / reCAPTCHA v2 / Cloudflare Turnstile / Friendly Captcha关闭电台源laut.fm(在线电台正在播放)可选邮件营销Brevo、sender.net可选汇率换算内置货币转换工具(钱包多币种)启用
总结:除了音视频(LiveKit/Agora)是重依赖,其余全部是”填 Key 即用、不填不影响”的可选增强,且官方服务器零依赖(狗凯定制版已切断全部回传)——断网外网服务不影响核心聊天功能。
五、实时通讯机制
模式 A:AJAX 轮询(默认,零依赖)
前端按 refresh_rate(默认 3000ms,可调)轮询新消息与状态接口;每 5 分钟触发一次系统任务(会员到期校验等)。优点:任何 PHP 虚拟主机都能跑;缺点:在线人数越多,空轮询请求越多,消息延迟 = 轮询间隔。
模式 B:Swoole WebSocket(推荐)
CLI 常驻进程 php websocket.php,Swoole 事件驱动长连接:消息即时推送(毫秒级)、在线状态实时变更、打字指示器即时同步;另开一个 TCP 内部监听端口,供 PHP-FPM 侧(网页请求)把”发消息”事件投递给 WS 进程转发给在线用户。HTTP 层只承担页面加载与 REST 式接口。
数据流(WebSocket 模式)
用户A发消息 → Nginx → PHP-FPM → 写MySQL + 投递TCP → Swoole进程
Swoole进程 → 按群成员在线表 → WebSocket 即时推送给 B/C/D…
离线用户
B 上线/轮询时从 MySQL 拉取未读 → 推送/邮件/FCM 通知
六、并发能力与扩容建议
两种模式的并发模型对比
指标AJAX 轮询模式Swoole WebSocket 模式请求模型每用户每 3s 一次 HTTP 轮询(可调 1~10s)长连接保持,事件推送,几乎无空请求100 在线≈ 33 请求/秒(轻负担)1 个常驻进程即可500 在线≈ 167 请求/秒,2C4G 需调 FPM 进程数轻松,消息毫秒级到达1000+ 在线≈ 333+ 请求/秒,开始吃力,建议调大轮询间隔 + Redis推荐区间,单机数千长连接无压力万级在线不适合Swoole 单机可承载 1w~5w 长连接(内存足够前提),瓶颈转移到 MySQL 写入消息延迟≈ 轮询间隔(秒级)毫秒级
瓶颈分析(按压力来源排序)
① MySQL 写入 —— 每条消息一次 INSERT,高发言频率下先到瓶颈。对策:MySQL 8.0 + innodb_buffer_pool 调大、消息表按群分表/归档、Redis 缓存热点
② PHP-FPM 进程数(仅 AJAX 模式敏感)—— 宝塔默认 pm.max_children 偏小,按内存调(例:4G 内存、单请求 40MB → 80~100 children);OPCache 必开
③ 带宽 —— 文件/图片走站点带宽,大站建议直接上 S3/OSS 卸载静态流量
④ 音视频 —— 完全不占 Web 服务器,走 LiveKit/Agora 独立扩容
实操扩容路线(宝塔环境)
1. 开 WebSocket 模式(最大收益的一步)
PHP 装 Swoole 扩展 → 进程守护跑 websocket.php → 放行 9502 → 后台切 WS 模式
2. 开 Redis(config.php enable_redis = true)
设置/语言/权限缓存走内存,减轻 MySQL 读压力
3. PHP-FPM 调优
pm = dynamic, max_children 按内存算, opcache 已默认开启
4. MySQL 调优
innodb_buffer_pool_size = 物理内存的 50~60%
5. 静态与上传分流
图片/附件迁移 S3 或独立 CDN 域名
单台 4C8G 云主机 + Swoole + Redis 的合理预期是 2000~5000 同时在线、日活上万的社群站;再往上就加机器做 MySQL 读写分离 + Swoole 多节点(系统设置自带 Redis 支持为多节点共享状态做了准备)。中小社群(几十到几百人在线)AJAX 模式完全够用。




