原创声明:本文为作者原创,未经允许不得转载,经授权转载需注明作者和出处
原创,转载请注明作者及出处
作者:刘冰华
2016-12-7 16:26
先说下我搭的服务器环境
centos7 + thinkphp5 + nginx + workerman + php7
首先,你要在微信管理后台配置允许请求的域名
我这里设置为wss://ssl.msaid.cn
因为是wss协议,所以你要提前申请好key放在服务器目录,SSL证书的key可以去腾讯云申请免费一年的,申请过程简单在些不累述,如有问题可以留言。
来配置下nginx服务器
vim /etc/nginx/conf.d/SSL.conf
添加一个server反向代理
如图:
因为我的socket端口启的是7272,所以这边把80和443端口全部代理到7272端口
意思大致就是:访问 wss://ssl.msaid.cn => http://localhost:7272
重启nginx
nginx -s stop
nginx
接下来就是重头戏,如何将workerman集成到thinkphp5里面了。。。
网上有很多教程,但是都是老版本的TP3.2的,
将workerman下载后保存至TP如下vender目录:
在TP根目录新建一个入口文件server.php,名字随便你取,内容如下:
接下来,在你的项目里面新增一个控制器,用于响应socket的接收发送消息,处理各类事件,根据interface必须定义相应响应方法
然后运行你的server.php
cd /www/tp/wx
php server.php start
这样你的Socket服务就跑起来了
再来看看微信端怎么用吧
在/utils/util.js中新建一个模块方法Socket,内容如下:
最后一步当然就是,在你需要用到socket的地方开始用起来了
如我在app.js里面跑:
that是执行环境为了取全局globalData用的,如无需要可忽视哈。
看一下运行效果:
当其他用户有操作的时候,会将消息及时推送给你的小程序,小程序再做出相应的处理