微信小程序开启websocket之旅

  • • 发表于 8年前
  • • 作者 刘冰华
  • • 5030 人浏览
  • • 4 条评论
  • • 最后编辑时间 8年前
  • • 来自 [技 术]

原创声明:本文为作者原创,未经允许不得转载,经授权转载需注明作者和出处

原创,转载请注明作者及出处

作者:刘冰华
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用的,如无需要可忽视哈。

看一下运行效果:

当其他用户有操作的时候,会将消息及时推送给你的小程序,小程序再做出相应的处理

分享到:
4条评论
Ctrl+Enter
作者

刘冰华

刘冰华

APP:0 帖子:15 回复:29 积分:953

已加入社区[2921]天

屌丝男士

作者详情》
Top