字
字节笔记本
2026年2月23日
GO-FLY:基于 Go 语言的开源在线客服系统
本文介绍 GO-FLY,一个基于 Go 语言开发的开源在线客服系统。该项目提供了完整的实时聊天解决方案,支持私有化部署,帮助企业快速搭建自有的客户服务平台。
项目简介
GO-FLY(goflylivechat)是一个开源的在线客服系统,由 taoshihan1991 开发维护。截至目前,该项目在 GitHub 上已获得 2.5k stars 和 712 forks,采用 Apache-2.0 许可证开源。项目旨在为企业提供高性能、可自托管的实时客服聊天解决方案。
官方网站:gofly.uniqchat.com
核心特性
- 实时消息通信:基于 WebSocket 实现客户与客服团队的即时连接
- 高性能并发:采用 Go 语言开发,天然支持高并发场景
- 私有化部署:支持自托管,数据完全由企业掌控
- 轻量级架构:简洁的代码结构,易于二次开发和定制
- 跨平台支持:支持 Linux 和 Windows 系统部署
- 易于集成:提供 JavaScript SDK,可快速嵌入到现有网站
技术栈
| 技术 | 用途 |
|---|---|
| Go (Golang) | 后端服务开发,提供高性能 HTTP 和 WebSocket 服务 |
| MySQL | 数据持久化存储 |
| WebSocket | 实时双向通信 |
| JavaScript | 前端聊天组件开发 |
| HTML/CSS | 客服后台管理界面 |
安装指南
前置要求
- Go 1.20+ 环境
- MySQL 5.7+ 数据库
- Linux 或 Windows 服务器
安装步骤
1. 创建 MySQL 数据库
sql
CREATE DATABASE goflychat CHARSET utf8mb4;2. 配置数据库连接
创建 config.json 文件:
json
{
"Server": "127.0.0.1",
"Port": "3306",
"Database": "goflychat",
"Username": "goflychat",
"Password": "goflychat"
}3. 安装 Go 环境
bash
# 下载并安装 Go 1.20.2
wget https://studygolang.com/dl/golang/go1.20.2.linux-amd64.tar.gz
tar -C /usr/local -xvf go1.20.2.linux-amd64.tar.gz
mv go1.20.2.linux-amd64.tar.gz /tmp
# 配置环境变量
echo "PATH=\$PATH:/usr/local/go/bin" >> /etc/profile
echo "PATH=\$PATH:/usr/local/go/bin" >> ~/.bashrc
source /etc/profile
# 验证安装
go version
# 配置 Go 模块代理
go env -w GO111MODULE=on
go env -w GOPROXY=https://goproxy.cn,direct4. 克隆并安装项目
bash
# 克隆仓库
git clone https://github.com/taoshihan1991/goflylivechat.git
cd goflylivechat
# 初始化数据库
go run main.go install
# 启动服务
go run main.go server5. 编译为可执行文件(可选)
bash
# 编译
go build -o gochat
# 运行
# Linux:
./gochat server
# Windows:
gochat.exe server
# 可选参数:
# -p 8082 指定端口
# -d 后台运行6. 停止服务
bash
killall gochat快速开始
服务启动后,默认监听 8081 端口。访问 http://[your-ip]:8081 即可使用。
如需使用域名访问,建议配置 Nginx 反向代理到 8081 端口。
网站集成
方式一:聊天链接
直接引导用户访问客服聊天页面链接。
方式二:弹窗集成
在网站页面中嵌入以下 JavaScript 代码:
html
<script>
(function(global, document, scriptUrl, callback) {
const head = document.getElementsByTagName('head')[0];
const script = document.createElement('script');
script.type = 'text/javascript';
script.src = scriptUrl + "/static/js/chat-widget.js";
script.onload = script.onreadystatechange = function () {
if (!this.readyState || this.readyState === "loaded" || this.readyState === "complete") {
callback(scriptUrl);
}
};
head.appendChild(script);
})(window, document, "http://127.0.0.1:8081", function(baseUrl) {
CHAT_WIDGET.initialize({
API_URL: baseUrl,
AGENT_ID: "agent",
});
});
</script>将 http://127.0.0.1:8081 替换为你的实际服务地址即可。
项目结构
text
goflylivechat/
├── config.json # 数据库配置文件
├── main.go # 程序入口
├── go.mod # Go 模块依赖
├── static/ # 静态资源文件
│ ├── js/ # JavaScript 文件
│ └── css/ # 样式文件
├── template/ # HTML 模板
└── ...适用场景
- 电商网站在线客服
- 企业内部技术支持
- 在线教育答疑系统
- 社区论坛用户支持
- 私有化部署的客服解决方案
注意事项
⚠️ 本项目仅供个人学习和测试使用。根据项目声明,禁止将本项目用于任何违法或非合规用途,包括但不限于病毒、木马、色情、赌博、诈骗、违禁品、假冒产品、虚假信息、加密货币和金融违规等活动。
项目链接
- GitHub 仓库:https://github.com/taoshihan1991/goflylivechat
- 官方网站:http://gofly.uniqchat.com
- 开源协议:Apache-2.0
分享: