提供微商城·微分销·小程序开店需求
5分钟开通你的微信商城店铺!2018-02-22 作者:黄先生
一、环境准备
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目录:
php index.php socket/server/index
客户端其实是一个 web 端的 websocket,源码包中同样有提供样例,可供大家参考。
2. 小程序端
我们需要简单封装socket 接口,用于处理连接成功、发送消息、连接失败自动重连等操作。
目录结构如下:
发送方法封装参考:
3. 提升 cli 程序稳定性
编写 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
三、注意事项
首先,如果使用 TP5 的帮助函数模块出现下面的错误,是数据库连接过期导致。建议大家将连接过期时间设置得更长,但即使这样,总有过期的时候。所以我们推荐使用 MongoDB。
停用Apache的SSL模块,改用NginX作为反向代理。
另外,如果要用 NginX 作为反向代理,会遇到会话过期的问题。我们有两个解决办法:
设置代理超时时间为一个很长的时间。
一个是客户端做个心跳检测(即定时向服务器发送一条信息)。
这两种办法都会增加服务器的负担,大家可以根据自己情况进行选择,我们建议采用后一种方法。
查看更多相似文章 更多内容可以关注hi小程序.推荐文章
最近在微信社群都可以看到拼多多的拆红包的界面,这又是一款拼多多的裂变营销方式,很多朋友对此表示很怀疑,到底是不...
Hishop最新消息,有这样一个小程序可以无需询问,就知道朋友的位置了,那么是如何定位分享位置的呢。...
小程序小游戏很火,现在开发小程序游戏成为一个热门的行业,下面来开始进入小程序小游戏开发基础快速入门课程。...
微信小程序的商业化进程越来越快,随着微信官方公布的相关数据显示,85%的小程序和电商有关。...
目前最好最受欢迎的收银系统品牌有HiShop友数、商米等,每个品牌都有各自的特点和主要发展的行业,下面小编就为大家来介...
餐饮行业是国内规模万亿级别的市场,如今市面上的餐饮品牌门店数不胜数,在如今这个互联网时代,许许多多餐饮门店都开...
连锁超市在选择收银系统的时候,首先会考虑到收银系统的操作便捷,能够给收银员的工作提升效率的同时,避免出现错误,...
超市收银系统百科 超市收银系统是零售业中用于处理销售交易的关键技术,它不仅提高了结账效率,还增强了顾客的购物体...
酒吧收银系统百科 1. 酒吧收银系统概述 酒吧收银系统是专为酒吧、夜店等娱乐场所设计的一套集成化管理软件,它能够实现...
生鲜超市收银系统十大品牌有哪些呢?下面小编就为大家来讲解一下各收银系统的特...