字节笔记本

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,direct

4. 克隆并安装项目

bash
# 克隆仓库
git clone https://github.com/taoshihan1991/goflylivechat.git
cd goflylivechat

# 初始化数据库
go run main.go install

# 启动服务
go run main.go server

5. 编译为可执行文件(可选)

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 模板
└── ...

适用场景

  • 电商网站在线客服
  • 企业内部技术支持
  • 在线教育答疑系统
  • 社区论坛用户支持
  • 私有化部署的客服解决方案

注意事项

⚠️ 本项目仅供个人学习和测试使用。根据项目声明,禁止将本项目用于任何违法或非合规用途,包括但不限于病毒、木马、色情、赌博、诈骗、违禁品、假冒产品、虚假信息、加密货币和金融违规等活动。

项目链接

分享: