专栏首页知晓程序开发 | 如何在小程序里搭建客服系统?

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

文 | 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

本文分享自微信公众号 - 知晓程序(zxcx0101),作者:让你更知小程序的

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2017-04-05

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 【晓头条】微信为迎双 11 做了个抢红包小程序 \\ 铁路购票即将支持微信支付 \\ 爱马仕首次在微信开店

    本周,你是不是被一个「左右脑年龄」的心理测试刷屏了?这款小程序被封朋友圈入口之后,又有一个新的「趣测」系小程序卷土重来。

    知晓君
  • 钉钉逼出最强企业微信,移动办公市场正迎来一场「人民战争」

    在北京接近 0 度的严寒中,企业微信终于迎来了自己第一次强势发声,「企业微信合作伙伴大会」在 2017 年末压轴出场了。在继续坚持连接、开放的理念之下,企业微信...

    知晓君
  • 最全解读!今年的腾讯大会,预示着微信将会有这些大变化(内含小程序数据)

    过去的一周,成都可能是全世界最幸福也最烦恼的城市了。它被连续 3 场广受关注的会议所「袭击」。

    知晓君
  • 微信删除的聊天记录怎么恢复?简单几招恢复

      微信删除的聊天记录怎么恢复?常见的社交工具就是微信了,很多人在使用微信的时候都会在微信中有很多的聊天记录在里面,而且还会有一些其他的文件或者图片,一个误操作...

    科技第六人
  • 微信小程序背后的思考

    (2017年)1月9日,万众期待的微信小程序正式发布;朋友圈早早地被微信小程序的相关信息所刷屏,极客人也耐不住心里的好奇心,也关注了几个微信小程序尝了尝鲜儿。从...

    极客人
  • 如何恢复微信已删除的聊天记录【IOS/Android都可以】

    随着微信的普及,很多朋友在聊微信时不小心把聊天记录删除,有的聊天记录比较重要,不知道怎么找回。下面微部落博客给大家分享iphone恢复微信已删除的聊天记录,希望...

    HACK学习
  • 当微信小程序遇上TensorFlow - tensorflow.js篇

    在上一篇推送《重磅好消息!TensorFlow开始支持微信小程序》中,介绍了TensorFlow开始支持微信小程序平台,并计划将我之前开发的人工智能微信小程序识...

    云水木石
  • 微信小程序背后的套路,其实挺深的

    是的,今天微信有更新了,这次的更新反响依旧是很大。其实对于微信一个月活 10 亿的产品来说,一个微小细节的变动,乘以 10 亿这个基数,都是属于变动非常大的,引...

    非著名程序员
  • 用 Python 进行微信公众号开发

    今天看到篇教程,是用python开发微信公众号的,觉得有意思,就敲代码实现了一下,成功后更觉得好玩,故记录,方便开发深入时使用。

    马哥linux运维
  • 微信小程序终于熬出来了,从企业到娱乐备受关注

    微信自从推出小程序以来,隔一段时间就会更显它的功能,很多人只是知道小程序,它在最开始的时候也只对企业开放,而现在微信小程序终于面向大众化,经过一件时间的沉淀,从...

    企鹅号小编

扫码关注云+社区

领取腾讯云代金券