前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >开发 | 如何在小程序里搭建客服系统?

开发 | 如何在小程序里搭建客服系统?

作者头像
知晓君
发布2018-08-01 11:04:33
1.4K0
发布2018-08-01 11:04:33
举报
文章被收录于专栏:知晓程序

文 | huazai123

知晓程序(微信号 zxcx0101)今天带来的,是基于「药顾问」微信小程序项目的 socket 客服模块搭建过程。

环境准备

1. 搭建 HTTPS 和 WSS 环境

由于微信规定,白名单域名不能携带端口信息,我们建议,开发者使用 NginX 进行代理转发,使其支持微信白名单域名的要求。

2. 定义前后端通信 JSON 协议

其中,token 是用来验证消息来源合法性的,fd 为当前 socket 连接资源 ID,from 为对方 socket 连接资源 ID,cmd 用于定义当前操作。

聊天系统搭建

1. 服务端

采用 TP5 和 swoole 扩展,并新建了一个 socket 模块,用于处理 socket 请求。

目录结构如下:

分为服务端 server.php 和客户端 client.php,服务端以 cli 形式运行。具体代码请参考 swoole 源码包中的 SSL 样例。

运行命令如下(先切换到服务器程序代码的public目录 ):

客户端其实是一个 web 端的 websocket,源码包中同样有提供样例,可供大家参考。

2. 小程序端

我们需要简单封装微信提供的 socket 接口,用于处理连接成功、发送消息、连接失败自动重连等操作。

目录结构如下:

发送方法封装参考:

3. 提升 cli 程序稳定性

编写 shell 脚本如下:

启用 crontab:

加入两行:

注意事项

如果使用 TP5 的帮助函数模块出现下面的错误,是数据库连接过期导致。

建议大家将连接过期时间设置得更长,但即使这样,总有过期的时候。所以我们推荐使用 MongoDB。

另外,微信小程序真机环境不予许指定端口,那上面的服务器配置就没有什么用,解决办法是:停用 Apache 的 SSL 模块,改用 NginX 作为反向代理。

如果要用 NginX 作为反向代理,会遇到会话过期的问题。我们有两个解决办法:

  • 设置代理超时时间为一个很长的时间。
  • 一个是客户端做个心跳检测(即定时向服务器发送一条信息)。

这两种办法都会增加服务器的负担,大家可以根据自己情况进行选择,我们建议采用后一种方法。

原文地址:

http://www.jianshu.com/p/26479d3892ac

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2017-04-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 知晓程序 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云开发 CloudBase
云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为200万+企业和开发者提供高可用、自动弹性扩缩的后端云服务,可用于云端一体化开发多种端应用(小程序、公众号、Web 应用等),避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档