thinkphp5+workerman搭建微信小程序socket后台,建立自己的聊天室
为什么80%的码农都做不了架构师?>>>
1、下载安装tp5
这一步就不详细说了,比较简单,直接看TP文档吧
2、通过composer,为tp5集成workermantp
官方真不错,提供了workerman的集成方法,通过composer一键安装,详细内容见tp官方的github
3、写应用,先让workerman在tp中跑起来(直接应用tp官方内容)
首先创建控制器类并继承 think\worker\Server,然后设置属性和添加回调方法
namespace app\index\controller;
use think\worker\Server;
class Worker extends Server
{protected $socket = 'ws://0.0.0.0:2346';public function onMessage($connection,$data){//这里写具体的逻辑$connection->send($data);}
}
支持workerman(具体用法请看workerman文档)所有的回调方法定义(回调方法必须是public类型)
在应用根目录增加入口文件 server.php
#!/usr/bin/env php
< ?php
define('APP_PATH', __DIR__ . '/application/');
define('BIND_MODULE','index/Worker');
// 加载框架引导文件
require __DIR__ . '/thinkphp/start.php';
<!--?php
define('APP_PATH', __DIR__ . '/application/');
define('BIND_MODULE','index/Worker');
// 加载框架引导文件
require __DIR__ . '/thinkphp/start.php';
在命令行启动服务
php server.php start
linux下面可以支持下面指令
php server.php start|stop|status|restart|reload
打开chrome浏览器,按F12打开调试控制台,在Console一栏输入(或者把下面代码放入到html页面用js运行)
// 假设服务端ip为127.0.0.1
ws = new WebSocket("ws://127.0.0.1:2346");
ws.onopen = function() {alert("连接成功");ws.send('tom');alert("给服务端发送一个字符串:tom");
};
ws.onmessage = function(e) {alert("收到服务端的消息:" + e.data);
};
可以看到返回说明搭建成功
4、重点来了,就是让ws变成wss,这也是最头疼的问题,需要使用nginx代理
首先,需要为你需要访问的域名申请SSL,这里是通过Nginx的反向代理实现功能,具体配置如下:
upstream websocket {# 填写workerman中websocket监听的端口server 127.0.0.1:2346;
}server {# 填写外部wss连接端口,不冲突即可listen 8282;ssl on;server_name test.painchina.com;ssl_certificate key/key.csr;ssl_certificate_key key/key.key;ssl_session_timeout 5m;ssl_session_cache shared:SSL:50m;ssl_protocols SSLv3 SSLv2 TLSv1 TLSv1.1 TLSv1.2;ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;location / {proxy_pass http://websocket;proxy_http_version 1.1;proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection "Upgrade";}
}
(1)把test.painchina.com换成你自己的访问域名
(2)把key.csr和key.key修改为你自己的SSL证书内容
5、搭建成功,访问试试
根据上面这个配置,访问地址为wss://test.painchina.com:8282
注意:微信小程序的sock链接不能带端口的,默认端口是443,带端口连接会出现开发工具、预览版正常,体验版和正式版错误
转载于:https://my.oschina.net/bibo/blog/1498974
thinkphp5+workerman搭建微信小程序socket后台,建立自己的聊天室相关推荐
- 微信小程序python flask_Python Flask 搭建微信小程序后台详解
前言: 近期需要开发一个打分的微信小程序,涉及到与后台服务器的数据交互,因为业务逻辑相对简单,故选择Python的轻量化web框架Flask来搭建后台程序.因为是初次接触小程序,经过一番摸索和尝试,个 ...
- SpringBoot+mysql搭建微信小程序后台(4)服务器搭建
此前后端代码只能在本地运行,不能在其他设备,联网访问,而搭建配置服务器后,把项目放在服务器运行,就可以通过服务器来访问我们的项目,如网站,作小程序数据接口等 本文采用的是阿里云ECS服务器,可根据自己 ...
- Python Flask 搭建微信小程序后台详解
前言: 近期需要开发一个打分的微信小程序,涉及到与后台服务器的数据交互,因为业务逻辑相对简单,故选择Python的轻量化web框架Flask来搭建后台程序.因为是初次接触小程序,经过一番摸索和尝试,个 ...
- flask ajax小程序,Python Flask 搭建微信小程序后台详解
后台程序返回了数据后,第三步就是小程序该怎么接收返回数据并进行相关业务逻辑处理. 小程序接收返回数据.Python-Flask向小程序返回了JSON格式的数据后,小程序的wx.requset()函数里 ...
- 阿里云服务搭建微信小程序开发环境
最近微信小程序异常火爆,很多人在学习,下面带着大家搭建下微信小程序的调试环境(client+server),并调试一套demo源码(JavaScript和node.js基础即可,微信推荐使用的语言,无 ...
- 手把手教搭建微信小程序教程
小白式手把手教搭建微信小程序教程 宝塔软件商店下载如下:php7.3 Nginx 1.20.2 MySQL 8.0.24 phpMyAdmin 5.0 搭建准备1:一台服务器(压缩包里附购买教程) ...
- 如何搭建微信小程序?
随着微信小程序被应用得越来越多,很多未入局的企业商家都在考虑搭建自己的微信小程序.那么如何搭建微信小程序呢?下面跟大家聊一聊. 如何搭建微信小程序? 第一步:准备好小程序账号 搭建微信小程序之前,我们 ...
- 基于滴滴云搭建微信小程序
微信小程序自 2017 年推出以来,以其轻量级级特性,为传统移动互联网格局带来了极大的震动.相对于传统 APP,小程序无需下载,即扫即用,用完即走,极大的节省了手机的空间,提高了用户使用的便利性. 本 ...
- PHP —— 用 ThinkPHP5.0 实现微信小程序登陆
PHP -- 用 ThinkPHP5.0 实现微信小程序登陆 <工欲善其事,必先利其器> 大家好,之前学习了 原生 PHP 和框架,今天我们运用框架 TP5.0 来实现一下微信小程序的用户 ...
最新文章
- Linux那些事儿 之 戏说USB(26)设备的生命线(九)
- python:自动化测试 playwright 库上传和下载
- js中对象的私有属性和公有属性
- 反思编写页面追加页面元素的方法,目的:加快开发速度 节省开发时间 需求:点击搜索清空表格内容进行增加新的数据行
- PHP 多参数方法的重构
- OpenCV中HoughLinesP( )检测直线函数返回的坐标的原点
- php文件上传详解,PHP文件上传实例详解!!!
- C语言课后习题(2)
- Java NIO学习篇之StandardOpenOption详解
- C# 两个datatable中的数据快速比较返回交集或差集
- 2022年Mathorcup数学建模挑战杯C题比赛心得总结(1)——A*算法的应用与优化(含Matlab代码)
- 基于图像识别的波形发生器
- IIS发布网站后网页样式丢失
- mac以及windows日语键盘快捷键
- 若依设置匿名访问路径
- 弘辽科技:信息层面售假排查逻辑
- OpenGL入门第三课--矩阵变换与坐标系统
- powershell导入脚本失败,禁止运行脚本,无法远程连接服务器
- 海思屏幕HAL代码解析
- 国产CPU产业链的逻辑架构