我们是唯一客服系统,这套在线客服系统,后端用 Golang 开发,前端用 VueJS 来做,下面分开说说前后端的实现逻辑。
前端部分
前端这边 VueJS 是通过 CDN 直接引入的,就是传统页面引入 JS 的开发方式。
好处有两点:
- 可以直接用 VueJS 的语法,写代码很顺手;
- 不用做前端编译,页面改完内容,刷新浏览器就能立刻看到效果,调试起来效率很高。
后端部分
后端基于 Golang,选用 Gin 框架搭建,整体代码结构简单清晰,采用基础的 MVC 分层模式;数据交互这块用 GORM 充当 Model 层,处理业务的数据读写。
Golang 对咱们在线客服这种实时消息业务,适配度很高:
- 原生就能做即时通讯,还可以配置守护进程,保障服务稳定不掉线;
- 自带多协程能力,支持大并发访问,后端支持异步执行,对比传统 PHP,性能优势很明显。
Golang 和传统 PHP 简单对比
- 即时通讯:Golang 原生支持;PHP 没有原生支持
- 进程保障:Golang 可配置守护进程;PHP 无原生守护进程能力
- 并发处理:Golang 原生多协程;PHP 没有原生协程
- 执行模式:Golang 支持后端异步执行;PHP 以同步执行为主
- 大并发场景:Golang 适配大并发访问;PHP 大并发下性能偏弱