下载

如何在微信小程序搭建聊天系统?搭建方法介绍

PConline 2017-12-27 12:22:04
网络辅助

  今天小编给大家分享的是如何在微信小程序搭建聊天系统?对这个感兴趣的小伙伴们就和小编一起学习下吧,以下就是具体的内容。

  一、搭建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目录):

  phpindex.phpsocket/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-lt1];then

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

  sleep2

  ulimit-cunlimited

  /opt/app/php/bin/php/opt/web/think/public/index.phpsocket/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作为反向代理遇到会话很容易过期,有两种办法,一个是设置代理超时时间为一个很长的时间;一个是客户端做个心跳检测.这两种办法会增加服务器内存消耗,但是没有办法只有折中考虑。

打开太平洋知科技,阅读体验更佳
前往太平洋知科技APP查看原文,阅读体验更佳
继续评论
前往APP
制作海报

网友评论

写评论
APP内评论,得金币,兑好礼

相关推荐

WPS所有功能都是灰色不能点的四种解决办法【详解】

WPS所有功能都是灰色不能点的四种解决办法【详解】

网络辅助 0

快手小店网页版入口  快手小店网页登录地址分享【详解】

快手小店网页版入口 快手小店网页登录地址分享【详解】

网络辅助 0

Furmark如何对GPU进行压力测试   Furmark对GPU进行压力测试的方法【详解】

Furmark如何对GPU进行压力测试 Furmark对GPU进行压力测试的方法【详解】

网络辅助 0

全明星激斗手游阵容搭配攻略【阵容推荐】

全明星激斗手游阵容搭配攻略【阵容推荐】

游戏攻略 0

电脑c盘满了怎么清理c盘空间?磨针一键永久解决问题

电脑c盘满了怎么清理c盘空间?磨针一键永久解决问题

厂商专区 0

ToDesk如何远程开机 ToDesk远程开机的教程【详解】

ToDesk如何远程开机 ToDesk远程开机的教程【详解】

网络辅助 0

Edge浏览器internet选项在哪里  Edge浏览器如何打开internet选项【详解】

Edge浏览器internet选项在哪里 Edge浏览器如何打开internet选项【详解】

网络辅助 0

暴雪战网怎么注销账号  暴雪战网注销账号的方法【详解】

暴雪战网怎么注销账号 暴雪战网注销账号的方法【详解】

网络辅助 0

分区助手怎么扩大C盘  分区助手给C盘扩容的方法【详解】

分区助手怎么扩大C盘 分区助手给C盘扩容的方法【详解】

网络辅助 0

天天象棋146关残局怎么破 146关残局的破解攻略【详解】

天天象棋146关残局怎么破 146关残局的破解攻略【详解】

游戏攻略 0