即时通讯技术在互联网应用场景中非常广泛,例如:客服系统、团队协作、游戏聊天、教育等。
通过在实际业务场景中整合开源的即时通讯技术或者在线聊天解决方案,组织或者个人可以灵活地自定义聊天体验,确保数据隐私和安全,实现平台完全自主可控。
本文收集了一些比较好的且有趣的聊天软件、即时通讯或者客服系统相关开源项目。为您在项目中实现聊天功能提供技术选型参考。
1.The Lounge IRC Web Client
https://github.com/thelounge/thelounge
The Lounge是一个新颖的、高度通用的基于Web的IRC客户端,提供了一个响应式的用户界面。它的设计支持跨平台,可以在各种设备和操作系统上无缝使用。用户可以自由设置和管理自己的IRC服务,整个通讯和用户体验完全自主可控。
功能特征:
IRC新颖功能:推送通知、链接预览、新消息标记等将IRC带入了世纪。
连接保持功能:在您脱机时保持与IRC服务器的连接。
跨平台:无论您使用什么操作系统,它都可以在Node.js运行的任何地方工作。
响应界面:客户端可在每台台式机、智能手机和平板电脑上顺利运行。
同步体验:无论使用何种设备,始终从中断的地方继续。
2.Chatwoot
https://github.com/chatwoot/chatwoot
Chatwoot是一个开源客户服务套件。Chatwoot支持查看和管理客户数据,与客户沟通,并根据客户资料激活他们。
功能特征:
支持多种对话渠道:网站(SDK)、SMS、API、Email等。
支持多个社交平台:FaceBook、Instagram、Twitter、Telegram、WhatsApp、Line等。
CRM:保存您所有的客户信息就在Chatwoot内,使用联系人笔记记录电子邮件,电话或会议记录。
自定义属性:定义自定义属性属性以存储有关联系人或对话的信息,并扩展产品以匹配您的工作流。
共享多品牌收件箱:使用共享收件箱管理多个品牌或页面。
私人笔记:使用@mentions和私人笔记在内部交流对话。
回复模板(已保存回复):通过添加已保存的常见问题回复来提高回复率。
对话标签:使用对话标签创建自定义工作流。
自动分配:Chatwoot根据可用性和负载智能地将工单分配给有权访问收件箱的座席。
会话连续性:如果用户通过聊天小部件提供了电子邮件地址,Chatwoot将以代理名称向客户发送电子邮件,以便用户可以通过电子邮件继续对话。
多语言支持:支持10多种语言。
强大的API Webhooks:使用Chatwoot的Webhooks和API扩展软件的功能。
集成:Chatwoot现在已经与Slack进行了原生集成。在Slack中管理您的对话,而无需登录仪表板。
3.Papercups
https://github.com/papercups-io/papercups
Papercups是一个使用Elixir开发的开源实时Web客户服务程序。
功能特征:
通过电子邮件回复:使用Papercups通过电子邮件回复支持工单
短信回复:转发Twilio对话并响应Papercups的短信请求
自定义聊天小部件:一个可定制的聊天小部件,您可以嵌入您的网站上与客户交谈
支持React:将聊天小部件嵌入为React组件或简单的HTML片段
支持React Native:在React Native应用中嵌入聊天小部件
支持Flutter:在Flutter应用程序中嵌入聊天小部件
Slack集成:可以与Slack连接,因此您可以直接从Slack频道查看和回复消息
Mattermost集成:能够与Mattermost连接,因此您可以直接从Mattermost查看和回复消息
支持Markdown和表情符号:可以使用Markdown和表情符号为消息添加字符!
邀请您的团队:可以发送邀请链接给您的队友添加您的账号
会话管理:支持关闭、分配和优先处理会话
基于Elixir开发:针对响应能力、容错能力和实时更新支持进行了优化
4.Papercups
https://github.com/chaskiq/chaskiq
这是一个免费开源的全功能实时聊天软件,支持营销、对话等功能。
功能特征:
支持自定义属性的客户群过滤器
可嵌入Web Messenger
座席会话路由
支持可定制内容的文本聊天
支持视频通话
可激活对话机器人
邮件活动
入门引导
社交集成:支持Whatsapp、Twitter DM、Slack、Calendly、Zoom等等!
CRM集成:支持与CRM软件集成,如:Pipedrive
网页钩子
可用于多语言的帮助中心系统
API支持:可通过GraphqhQL使用Oauth授权
快速回复
可配置数据保护
访问审核、记录更改审核
角色访问/权限系统
可植入报表
支持嵌入式网络聊天
5.RelatedChat
https://github.com/relatedcode/Messenger
RelatedChat是一个支持iOS(Swift)、Android(React Native)和Web(React)版本的开源通信平台。
功能特征:
直接聊天功能
频道聊天功能
发送短信
发送emoji信息
发送图片信息
发送视频消息
发送音频消息
发送贴纸
发送GIF消息
媒体文件本地缓存
媒体消息可重新下载
媒体下载网络可选择(Wi-Fi、蜂窝或手动)
媒体消息的缓存可设置(自动/手动清除)
输入提示
加载历史消息
消息传递回执
消息已读回执
任意大小的消息
发送/接收声音效果
复制和粘贴文本消息
视频长度可限制
可将照片信息保存到设备
可将视频消息保存到设备
实时会话视图,可查看正在进行的聊天
聊天多媒体文件视图
多图片查看视图
基本配置视图
用户基本配置视图
配置文件编辑以及用户详细信息视图
支持使用电子邮件登录
可配置隐私政策
可配置服务条款
有完整的源代码可用
无需后端编程
原生且可自定义的用户界面
支持iPhone原生iOS的暗黑模式
6.Tindo Chat 服务端和客户端
https://github.com/tinode/chat
Tindo即时消息服务器的后端采用纯Go语言开发,基于GPL 3.0开源许可,客户端支持Java,JavaScript和Swift语言。此外,在Apache2.0开源许可下还支持C++、C#、Go、Java、Node、PHP、Python、Ruby和Java-C等开发语言中使用gRPC通讯协议。传输协议可基于WebSocket的JSON(也可以使用长轮询)或者使用gRPC的protobuf。
Tinode的协议不是XMPP/Jabber,也不兼容XMPP,它是XMPP的替代品。乍一看有点像WhatsApp或Telegram。
功能特征:
一对一和群组消息传递。
视频通话、语音通话、语音留言。
频道支持无限数量的订阅者。
所有聊天都可在所有设备上同步。
支持用户搜索、发现。
丰富的Markdown消息格式,支持内嵌图片、视频、文件附件。
适用于聊天机器人的表单和模板响应。
支持账户标记,如:已验证、工作人员、不受信任。
消息状态通知,如:消息传递到服务器、已接收、已读通知、键入通知。
联系人列表中可直接显示最新消息预览。
可以为个人、群聊生成的在线状态通知。
支持转发和回复消息。
支持编辑已发送的消息。
精细的访问控制,具有各种操作的权限:支持自定义身份验证后端、能够阻止不必要的通信服务器端、支持匿名用户(对于与聊天技术支持相关的用例很重要)。
支持扩展功能插件(例如,支持审核或聊天机器人)
包含用于服务器管理的脚本命令行工具。
支持MySQL、PostgreSQL、MongoDB、RethinkDB等数据库,还可以编写适配器对接其他数据库。
开发语言支持:没有外部依赖的JavaScript;Java依赖于 Jackson 和 Java-Websocket,适用于Android,但不依赖Android SDK;Swift没有外部依赖;支持C/C++、C#、Go、Python、PHP、RubygRPC等语言使用gRPC。
支持带故障转移的分区群集。
支持使用本地文件系统或云存OSS存储传输过程中的图像或文档文件等大型对象。
7.Laravel messenger
https://github.com/RTippin/messenger
Laravel messenger是一个非常特殊的即时消息套件,旨在增强Laravel应用程序的功能。有了这个套件,可以实现多个模型之间的私有或者组线程的通信。具有实时消息传递、反馈、附件、呼叫、聊天机器人等功能。
功能特征:
多个模型之间的实时消息传递。
支持自定义UI或连接到移动应用程序。
支持私有线程、组线程。
消息提示、回复、编辑和删除。
支持发送图像、文档、音频和视频消息。
支持群组线程聊天机器人,提供现成的机器人。
支持自定义自己的聊天机器人
从好友列表中添加群组的参与者。
授权聊天群的参与者。
支持添加好友、搜索好友和显示好友在线状态。
当两个参与者不是朋友时,需要批准。
支持好友头像、群组头像和机器人头像。
可以扩展底层呼叫系统。
支持群组邀请链接(像discord)。
所有端点都有保护策略。
可用于自动清理和检查的命令。
大多数功能都可以在运行时使用Messenger facade进行切换。
MessengerComposer facade允许您轻松访问应用内的任何核心操作,例如:发送消息、图像、反馈等。
只需将类绑定到容器中就可以实现或扩展自己的BroadcastDriver、VideoDriver和FriendDriver。
支持魔术贴。
发送消息时可选的额外负载,以允许自定义json与消息一起存储。
所有者关系在未找到时返回Ghost Profile(空对象模式)。
私有线程在未找到收件人时自动锁定。
8.EZchat
https://github.com/nevadex/ezchat
EZchat是一个免费的、简单的、中心化的聊天程序,它基于.NET Core 3.1和SignalR开发,可以托管在各种云平台或者私有环境,支持使用Tor和FreeDNS。非常适合小团队开发。
功能特征:
简单的消息传递
简单的审核制度
最近消息缓存
连接状态
在线用户列表
TTS模式
脏话过滤器
兼容Tor和FreeDNS
9.Tiledesk
https://github.com/Tiledesk/tiledesk-dashboard
Tiledesk是一个集成了聊天机器人的开源实时聊天平台。它允许您为Web构建自己的客户支持系统,Android,和iOS. Tiledesk通过聊天机器人、API和webhook集成提供自动化,并能够在对话中部署可视化应用程序。它还支持多渠道沟通,适应各种平台,如Whatsapp,Facebook Messenger和Telegram。
功能特征:
无限制聊天对话
可自定义工具
会话标签和注释
支持CRM
支持多达200000条的来自机器人消息
部门和代理组
聊天历史记录
票务系统
数据导出、分析
屏蔽回复
10.dric
https://github.com/chr15m/dirc
一款开源p2p网络聊天软件。
11.Rocket.chat
https://github.com/RocketChat/Rocket.Chat
Rocket.chat提供了一系列的通信功能。支持第三方AI集成,支持XMPP消息通知,并提供Chrome扩展程序。支持声音通知、多个聊天、聊天统计、聊天记录、多语言、文件上传、聊天搜索、回调、在线用户跟踪、GEO检测、主动聊天邀请、性能缓存以及各种自定义选项功能。它还为Windows、Linux和Mac平台提供应用程序。
功能特征:
团队协作:安全的内部和跨公司协作。
全渠道客户服务:与客户进行无缝互动。
聊天引擎:支持在移动端的或Web应用程序中创建自定义消息。
应用集成:可选择广泛的应用程序进行本地集成,帮助企业更有效地沟通。
12.mangosteen-chat
基于JavaScript的Web端聊天程序。
https://github.com/heysafronov/mangosteen-chat
一个支持单WEB页面应用程序的JavaScript组件。
13.BOBLE
https://github.com/marioperezhurtado/Boble
BOBLE是一个免费的开源网络聊天程序,使用TypeScript开发。
功能特征:
私人聊天室。
无限制的参与者的团体。
实时共享文本消息、图像、GIF和音频记录。
支持在云存储中保存数据。
管理群组️和聊天对象和消息。
支持所有设备访问,因为只需要一个浏览器。
只需要验证电子邮件地址,不需要泄漏电话号码或其他个人信息。
支持英文、西班牙文和法文。
14.WebChat
https://github.com/lukefire5156/WebChat
一个基于Socket.io、Node.js、MongoDB开发的简单网络聊天应用程序。
15.RP Rooms
https://github.com/90sPixelDev/rp-rooms
一个用于角色扮演的网络聊天应用程序。
16.rabbitChat
https://github.com/anirbanroydas/rabbitChat
一个基于AMQP协议的聊天服务器/聊天系统(RabbitMQ Message Broker),使用Tornado和RabbitMQ编写。
功能特征:
公开聊天
显示谁加入谁离开
显示在线人数
显示谁在打字
支持加入、离开聊天室功能
基于微服务
使用Docker和Docker Compose部署
17.Silent Server
https://github.com/Flone-dnb/SilentServer
Silent是一款非常轻量级、高质量、低延迟的游戏语音聊天工具。可以在Windows和Linux上运行。
18.Socket.chat
https://github.com/sidvishnoi/socket-chat
Socket.chat是一个可以在Python和C++中使用Unix套接字的CLI聊天应用程序。
19.Nakama
https://github.com/heroiclabs/nakama
Nakama是一个开源的分布式聊天服务器软件,主要用于社交和游戏。
功能特征:
通过社交网络、电子邮件或设备ID注册/登录新用户。
将用户记录、设置和其他对象存储在集合中。
用户可以与朋友联系并加入群组。内置的社交图,查看用户连接状态。
用户之间的一对一、群组和全局聊天。保存聊天记录的消息。
多人实时游戏或回合制主动、被动多人游戏。
排行榜:动态的、季节性的、获得顶级成员或用户周围的成员。
巡回赛:邀请玩家一起争夺奖品。将许多人连接在一起创建联盟。
派对:在游戏中加入团队游戏。用户可以组建一个党,并与党员交流。
购买验证:验证应用内购买和订阅。
In-App插件:向连接的客户端发送消息和通知。
支持使用Lua、TypeScript/JavaScript或原生Go代码编写的自定义逻辑扩展服务器。
支持Matchmaker、仪表板、指标等。
20.EzyFox Server
https://github.com/youngmonkeys/ezyfox-server
EzyFox是开发多人游戏的免费开源解决方案。它支持各种协议、加密、数据库交互和消息队列,使开发人员能够专注于实现业务逻辑,而无需担心技术选择。
功能特征:
核心容器依赖注入:包括bean操作、自动绑定、自动实现等。
多种通信协议:支持TCP、UDP、WebSocket和HTTP。
流量加密:允许使用SSL加密客户端和服务器之间的流量。
多种客户端SDK:包括Android、iOS、Unity、React、C++、Flutter等。
21.Live Helper Chat
https://github.com/LiveHelperChat/livehelperchat
Live Helper Chat是一个强大的即时通讯解决方案。它提供了一系列功能,包括Web和移动的应用程序,以及通过语音、视频和屏幕共享进行通信的能力。此外,Live Helper Chat支持与消息平台集成,如Telegram、Twilio(WhatsApp)或Facebook Messenger。它甚至允许您构建自己的聊天机器人来自动化客户交互。通过Live Helper Chat,可以为网站访问者提供无缝和高效的支持,确保积极的用户体验。
该应用程序的功能包括:第三方AI集成、XMPP通知支持、Chrome扩展、声音通知、多个聊天、聊天统计、聊天记录功能、多语言支持、文件上传、聊天搜索、回调、在线用户跟踪、GEO检测、主动聊天邀请等,支持Windows、Linux和Mac系统部署以及各种自定义选项。
22.Mattermost
https://github.com/mattermost/mattermost
Mattermost是一个开源消息和协作平台。用于团队在集中和受控的环境中进行通信和协作。Mattermost提供实时消息传递、文件共享以及与其他工具和服务集成等功能。它被广泛用于组织内部沟通和项目协作。
23.Retroshare
https://retroshare.cc/
Retroshare是一个免费开源的私密聊天平台,备较高安全性,允许朋友之间的加密连接,提供聊天、邮件、文件共享、论坛和频道等服务。它通过匿名隧道确保了隐私性和匿名性。可以用于Tor和I2P网络以增强安全性和匿名性。
24.SimpleX
https://github.com/simplex-chat/simplex-chat
SimpleX是一个没有任何用户类型标识符的消息传递平台, 支持100%私有化,目前包含iOS和Android应用程序。
25.Tox
https://github.com/Tox/tox.chat
Tox是一个开源即时通讯程序,技术架构基于分布式、点对点和端到端的加密系统。主要针对一些对隐私和防范间谍活动要求比较高的场景。
26.Tailchat
https://github.com/msgbyte/tailchat
Tailchat 类似Discord,但却不仅仅是另一个Slack、Discord、Rocket.chat,而是下一代noIM应用程序。
功能特征:
注重隐私,只有被邀请的成员才能加入群。
防止陌生人,仅通过昵称+随机一串数字添加好友。
两层小组空间,通过面板划分不同的主题。
高度自定义的群组空间,通过拖放分组创建原始的群组空间。同时,还可以使用更多的插件来增加更多的功能。
既严格又有趣,通过插件的组合,可以用于个人或者企业的各种场景。
后端采用微服务结构,支持大规模部署。不用担心用户数增长后怎么办。
27.Let's Chat
https://github.com/sdelements/lets-chat
一个简单而强大的开源聊天应用程序,专为小型团队构建。
功能特征:
支持私有化部署。
消息持久化。
支持多个聊天室。
隐私和密码保护。
新消息提醒、通知。
@功能(嘿@你/@所有)。
图像嵌入、搜索。
代码粘贴。
文件上传。
可搜索的聊天记录。
基于XMPP的多用户聊天。
用户之间的1对1聊天。
多种认证方式:Local、Kerberos 、LDAP。
Hubot适配器。
类REST API。
支持i18n。
MIT开源许可。
28.chat_desk
https://github.com/omegaui/chat_desk
这是一个用Flutter开发的桌面聊天应用程序!
29.Chat聊天
https://github.com/m1k1o/chat
这是一个简单的即插即用实时聊天程序,使用JavaScript、Socket.io实现。
功能特征:
没有用户帐户,只需输入昵称即可加入。
没有保存历史记录,只有登录的用户可以看到最近的历史记录。
没有提供配置项。
只有一个聊天室,不能创建任何其他房间或写PM给别人。
不在服务器上存储任何数据。