美文网首页小程序微信小程序程序员
微信小程序聊天系统搭建

微信小程序聊天系统搭建

作者: AI看舌 | 来源:发表于2017-03-10 16:45 被阅读5575次

    本文主要介绍基于公司的一个微信小程序(药顾问)项目socket客服模块的搭建

    本文目录:

    1、搭建HTTPS和wss环境;

    2、定义前后端通信json协议;

    3、聊天系统搭建;

    4、注意事项。

    环境准备

    一、搭建HTTPS和wss环境

    具体搭建过程请查看我的另外一篇文章《微信小程序PHP服务器配置(https+wss)-suse版》,由于wss域名不能带端口,所以建议用Nginx进行代理转发。

    二、定义前后端通信json协议


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

    三、聊天系统搭建

    1、服务端

    采用TP5和swoole扩展,新建一个socket模块专门处理socket,目录结构如下

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

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

    php index.php socket/server/index

    客户端其实是一个web端的websocket,源码包中同样有提供样例。请自行查看,此处不贴出源码。

    2、小程序客户端

    简单封装下微信提供的socket接口,用于处理连接成功,发送消息,连接失败自动重连等公用操作,目录结构如下

    发送方法封装参考:

    3、保证cli程序100%可用

    编写shell脚本如下:

    count=`ps -fe |grep "socket/server" | grep -v "grep" | grep "master" | wc -l`

    echo $count

    if [ $count -lt 1 ]; then

    ps -eaf |grep "socket/server" | grep -v "grep"| awk '{print $2}'|xargs kill -9

    sleep 2

    ulimit -c unlimited

    /opt/app/php/bin/php /opt/web/think/public/index.php socket/server/index

    echo "restart";

    echo $(date +%Y-%m-%d_%H:%M:%S) >/opt/script/log/restart.log

    fi

    启用crontab

    crontab -e

    加入一行:

    */1 * * * * /opt/script/check_server.sh #每隔一分钟检测下脚本

    crontab -l

    四、注意事项

    1、如果使用TP5的帮助函数model出现下面的错误,是数据库连接过期导致,把连接过期时间设置长点,但是总有过期的时候,所以建议改用mongodb

    2、微信小程序真机环境不予许指定端口,那上面的服务器配置就没有什么用,解决办法是:停用Apache的ssl模块,改用Nginx作为反向代理,具体方法参考我之前写的文章。亲测可用

    3、如果用Nginx作为反向代理遇到会话很容易过期,有两种办法,一个是设置代理超时时间为一个很长的时间;一个是客户端做个心跳检测(即定时向服务器发送一条信息),这两种办法都会增加服务器内存消耗,但是没有办法只有折中考虑,建议采用后者。

    相关文章

      网友评论

      • yinqf7437:小程序做的客服系统,如何实现消息通知哦,望大神指点
        yinqf7437:@huazai123 谢谢指点:blush:
        AI看舌:有两种解决方案:一个是理由微信的模板消息或者使用自带的客服系统,一个是播放本地的音频文件。
      • Klart:爱分享公众号可以分享你的文章吗??
        AI看舌: @Klart 可以,请注明作者和出处。
      • hauibojek:在一个im应用里面搭建另一套im应用🙄 这个产品。。
        AI看舌:实际上我们是用来开发自己的客服系统
      • 艾逸涵:很好的分享
        AI看舌: @艾逸涵 谢谢
      • 知晓程序:你好!我们是爱范儿旗下专注于小程序生态的公众号知晓程序(微信号 zxcx0101)。我们很赞赏你的文章,希望能获得转载授权。授权后,你的文章将会在知晓程序社区(minapp.com)、爱范儿、AppSo 等渠道发布。此外,由于第三方同步抓取功能,您的内容也可能会被同步发表到今日头条、搜狐、网易号等,我们会注明来源和作者姓名。

        非常感谢~~~
        知晓程序:@huazai123 感谢~
        AI看舌: @知晓程序 可以

      本文标题:微信小程序聊天系统搭建

      本文链接:https://www.haomeiwen.com/subject/xwqogttx.html