Java网站项目集成GO-FLY开源在线客服系统功能,集成IM即时通信

一,背景

  • 网站接入在线客服功能,核心需求是实现访客与客服的实时高效沟通、访客信息精准管理、客服工作规范化管控及数据可追溯分析。

  • 在选型上,若追求低成本、快速落地,优先选择GO-FLY开源在线客服系统,提供标准JS嵌入方式,Java后端无需大量开发工作即可快速集成,且开源免费可商用、支持多平台适配,能满足上述核心功能需求;

  • 选型对比:

项目 语言 嵌入方式 核心功能 部署难度 适合场景
yunkefu Java/SpringBoot JS/iframe 全功能客服 中小 Java 项目快速上线
SayOrder Java API / 嵌入 智能 + 基础客服 电商、智能咨询
Rocket.Chat Node.js JS/iframe + Java API 强大 IM 需复杂 IM+Java 业务
GOFLY Go JS 嵌入 轻量客服 极低 快速嵌入、轻量需求

二,介绍GO-FLY开源在线客服系统

  • 编程语言:Golang
  • Web 框架:Gin
  • 身份验证:JWT(JSON Web Tokens)
  • WebSocket:用于客服之间的即时通讯
  • 数据库:GORM(用于操作 MySQL)
  • 前端框架:Vue
  • 命令行工具: Cobra

GO-FLY是一款基于Go语言构建的开源即时通讯与在线客服系统,核心依托Gin高性能HTTP框架及GORM数据库ORM开发,具备轻量高效、部署便捷、可扩展性强的特点,可免费商用且支持私有化部署。
该系统采用前后端分离架构,后端基于Go语言开发,充分利用Go语言的并发特性,支持高并发请求处理,内存消耗低;前端采用Vue3+TypeScript+Arco Design组件库开发,界面简洁直观,易于客服人员快速上手操作。
在功能上,GO-FLY全面覆盖网站在线客服核心需求,支持访客与客服实时沟通(含文字、表情、图片、文件等多种消息格式)、多客服账号管理、会话自动/手动分配、访客信息展示(IP、地区、访问轨迹等)、聊天记录存储与查询、数据统计分析等。
在适配性方面,GO-FLY支持Java、PHP、Python等多语言网站接入,对于Java网站而言,无需进行复杂的代码开发,仅需嵌入一段标准JS代码即可快速集成,同时支持通过REST API或gRPC与Java后端实现跨语言通信,确保与网站现有Java技术架构无缝兼容、数据互通,大幅降低集成成本与周期。

三,部署GO-FLY环境:安装清单

  • 系统: 一台新的虚拟机linux CentOS 7.6
  • mysql版本:5.7
  • Golang版本:1.22.3
  • nginx版本:1.20.1
  • gofly项目:没看见有版本说明,下载日期是2026-03-31

资源下载:go环境和gofly项目

四,部署GO-FLY环境:Nginx

  • 安装nginx的原因:访客发送的文件能成功上传(客服能看到 docx 卡片),但点击下载 / 预览时 404,原因是:GOFLY

    服务没有配置静态文件访问路由,/static/upload/ 目录没有对外开放!

  • 推荐Nginx 反向代理修复:需要把 static/upload 目录暴露出来。如果你的 Java Web 项目也在同一台服务器,直接用

    Nginx 统一代理是最稳的

  1. 先备份旧源
bash 复制代码
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
  1. 替换成阿里云源(能上网就能用)
bash 复制代码
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

3.必须先装 epel 源

bash 复制代码
yum install -y epel-release

4.清理并重新生成缓存

bash 复制代码
yum clean all
yum makecache

5.安装 Nginx

bash 复制代码
yum install -y nginx

6.nginx配置

bash 复制代码
vim /etc/nginx/conf.d/gofly.conf

输入下面内容:

bash 复制代码
server {
    listen 80;
    server_name 192.168.211.128;

    location /static/ {
        root /home/gofly/goflylivechat-master;
    }

    location / {
        proxy_pass http://127.0.0.1:8081;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

7.重启 nginx

bash 复制代码
nginx -t

systemctl restart nginx

五,部署GO-FLY环境:Golang

  1. 在线下载go包,或者使用提供的
bash 复制代码
wget https://dl.google.com/go/go1.22.3.linux-amd64.tar.gz
  1. 设置Go 官方代理
bash 复制代码
go env -w GOPROXY=https://goproxy.cn,direct
  1. 解压、设置环境
bash 复制代码
tar -C /usr/local -zxf go1.22.3.linux-amd64.tar.gz
echo "export PATH=\$PATH:/usr/local/go/bin" >> /etc/profile
source /etc/profile

4.验证版本

bash 复制代码
go version

六,部署GO-FLY环境:MySQL

  1. 安装 MySQL5.7 官方源
bash 复制代码
rpm -ivh https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm
  1. 安装 MySQL 5.7 服务
bash 复制代码
yum install -y mysql-community-server --nogpgcheck
  1. 启动 MySQL
bash 复制代码
systemctl start mysqld
systemctl enable mysqld
  1. 查看初始密码(非常重要)
bash 复制代码
grep 'temporary password' /var/log/mysqld.log

你会看到类似:

bash 复制代码
A temporary password is generated for root@localhost: xxxxxx
  1. 修改密码
bash 复制代码
mysql -uroot -p

使用初始密码登录

然后执行下面 3 行(直接复制):

bash 复制代码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'Admin@123';
flush privileges;
exit;
  1. 创建gofly的数据库
bash 复制代码
#连接mysql
mysql -uroot -p

#密码Admin@123

#连接创建库
create database gofly charset utf8mb4;

七,部署GO-FLY环境:GO-FLY服务

  1. 复制项目包(.zip包)到系统内,该项目是githup的,本文已经提供了该项目包

  2. 解压zip,并进入goflylivechat-master目录

3.配置项目数据库连接

bash 复制代码
vim config/mysql.json

配置mysql的属性

bash 复制代码
{
  "Server": "127.0.0.1",
  "Port": "3306",
  "Database": "gofly",
  "Username": "root",
  "Password": "Admin@123"
}
  1. 安装项目依赖
bash 复制代码
go mod tidy
  1. 编译项目
bash 复制代码
go build -o kefu main.go
  1. 初始化数据库
bash 复制代码
./kefu install
  1. 启动gofly客服服务
bash 复制代码
# 启动
./kefu server

其他命令:

bash 复制代码
#关闭
pkill -f kefu
bash 复制代码
# 后台运行,日志写入 nohup.out
nohup ./kefu server &
  1. 系统信息:gofly的端口默认是8081

进入mysql的gofly库,直接改密码:

bash 复制代码
UPDATE user SET password = 'e10adc3949ba59abbe56e057f20f883e' WHERE name = 'agent';
  1. 关闭防火墙:
bash 复制代码
sudo systemctl stop firewalld
sudo systemctl disable firewalld
  1. 访问

八,既有项目引入,测试

  1. 在你的项目里引入聊天页面:在gofly项目首页已经贴出script代码了,直接复制过来即可,下面是完整html
bash 复制代码
<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=\, initial-scale=1.0">
  <title>测试在线客服</title>


</head>

<body style="background-color: #f2f2f2;">
  <div style="line-height: 22px;font-size: 18px;margin: 15px;">
    测试在线客服
  </div>

</body>



<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://192.168.211.128:8081", function(baseUrl) {
    CHAT_WIDGET.initialize({
      API_URL: baseUrl,
      AGENT_ID: "agent",
    });
  });
</script>



</html>
  1. 测试:
    网页效果:

gofly服务端效果:

另外再设置页面,可以设置一下欢迎语:

  1. 测试结果:
    gofly聊天支持 文字、图片、文档(若文档需要网页上点击下载,需要用nginx代理静态资源)

九,扩展功能

支持API,自己研究把

相关推荐
OpenCSG2 小时前
OpenCSG重磅开源|CIMD开源,打造垂类数据集
人工智能·开源·大模型·数据集·opencsg·cimd
张3蜂2 小时前
现在有开源的最好的矢量动画模型是什么,什么配置的电脑可以部署
开源·电脑
m0_651593912 小时前
领域驱动设计(DDD)实战指南:如何正确构建复杂系统
java·软件工程·ddd
nbwenren2 小时前
linux 设置tomcat开机启动
java
Y4090013 小时前
【多线程】Thread 类
java·开发语言·jvm
东离与糖宝3 小时前
Spring AI Alibaba v1.0 正式版:Java 企业 AI 网关从 0 到 1 搭建
java·人工智能
学java的冲鸭3 小时前
【SpringAI第四章】函数调用
java·ai·springai
AI成长日志3 小时前
【datawhale】hello agents开源课程学习记录第6章:智能体框架开发实践
学习·开源
呆萌很3 小时前
【GO】创建包练习题
golang