原創聲明:本文為作者原創,未經允許不得轉載,經授權轉載需注明作者和出處
原創,轉載請注明作者及出處
作者:劉冰華
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用的,如無需要可忽視哈。
看一下運行效果:
當其他用戶有操作的時候,會將消息及時推送給你的小程序,小程序再做出相應的處理