为什么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后台,建立自己的聊天室相关推荐

  1. 微信小程序python flask_Python Flask 搭建微信小程序后台详解

    前言: 近期需要开发一个打分的微信小程序,涉及到与后台服务器的数据交互,因为业务逻辑相对简单,故选择Python的轻量化web框架Flask来搭建后台程序.因为是初次接触小程序,经过一番摸索和尝试,个 ...

  2. SpringBoot+mysql搭建微信小程序后台(4)服务器搭建

    此前后端代码只能在本地运行,不能在其他设备,联网访问,而搭建配置服务器后,把项目放在服务器运行,就可以通过服务器来访问我们的项目,如网站,作小程序数据接口等 本文采用的是阿里云ECS服务器,可根据自己 ...

  3. Python Flask 搭建微信小程序后台详解

    前言: 近期需要开发一个打分的微信小程序,涉及到与后台服务器的数据交互,因为业务逻辑相对简单,故选择Python的轻量化web框架Flask来搭建后台程序.因为是初次接触小程序,经过一番摸索和尝试,个 ...

  4. flask ajax小程序,Python Flask 搭建微信小程序后台详解

    后台程序返回了数据后,第三步就是小程序该怎么接收返回数据并进行相关业务逻辑处理. 小程序接收返回数据.Python-Flask向小程序返回了JSON格式的数据后,小程序的wx.requset()函数里 ...

  5. 阿里云服务搭建微信小程序开发环境

    最近微信小程序异常火爆,很多人在学习,下面带着大家搭建下微信小程序的调试环境(client+server),并调试一套demo源码(JavaScript和node.js基础即可,微信推荐使用的语言,无 ...

  6. 手把手教搭建微信小程序教程

    小白式手把手教搭建微信小程序教程 宝塔软件商店下载如下:php7.3  Nginx 1.20.2  MySQL 8.0.24 phpMyAdmin 5.0 搭建准备1:一台服务器(压缩包里附购买教程) ...

  7. 如何搭建微信小程序?

    随着微信小程序被应用得越来越多,很多未入局的企业商家都在考虑搭建自己的微信小程序.那么如何搭建微信小程序呢?下面跟大家聊一聊. 如何搭建微信小程序? 第一步:准备好小程序账号 搭建微信小程序之前,我们 ...

  8. 基于滴滴云搭建微信小程序

    微信小程序自 2017 年推出以来,以其轻量级级特性,为传统移动互联网格局带来了极大的震动.相对于传统 APP,小程序无需下载,即扫即用,用完即走,极大的节省了手机的空间,提高了用户使用的便利性. 本 ...

  9. PHP —— 用 ThinkPHP5.0 实现微信小程序登陆

    PHP -- 用 ThinkPHP5.0 实现微信小程序登陆 <工欲善其事,必先利其器> 大家好,之前学习了 原生 PHP 和框架,今天我们运用框架 TP5.0 来实现一下微信小程序的用户 ...

最新文章

  1. Linux那些事儿 之 戏说USB(26)设备的生命线(九)
  2. python:自动化测试 playwright 库上传和下载
  3. js中对象的私有属性和公有属性
  4. 反思编写页面追加页面元素的方法,目的:加快开发速度 节省开发时间 需求:点击搜索清空表格内容进行增加新的数据行
  5. PHP 多参数方法的重构
  6. OpenCV中HoughLinesP( )检测直线函数返回的坐标的原点
  7. php文件上传详解,PHP文件上传实例详解!!!
  8. C语言课后习题(2)
  9. Java NIO学习篇之StandardOpenOption详解
  10. C# 两个datatable中的数据快速比较返回交集或差集
  11. 2022年Mathorcup数学建模挑战杯C题比赛心得总结(1)——A*算法的应用与优化(含Matlab代码)
  12. 基于图像识别的波形发生器
  13. IIS发布网站后网页样式丢失
  14. mac以及windows日语键盘快捷键
  15. 若依设置匿名访问路径
  16. 弘辽科技:信息层面售假排查逻辑
  17. OpenGL入门第三课--矩阵变换与坐标系统
  18. powershell导入脚本失败,禁止运行脚本,无法远程连接服务器
  19. 海思屏幕HAL代码解析
  20. 国产CPU产业链的逻辑架构

热门文章

  1. [数据结构] 二叉树基础
  2. 递归与分治——全排列问题
  3. Hadoop基本流程与应用开发
  4. svg图片在vue脚手架vue-cli怎么使用
  5. LeetCode Pancake Sorting
  6. simple2.py
  7. 剑指Offer_35_数组中的逆序对
  8. 如何在单元测试中测试异步函数,block回调这种
  9. 20135223何伟钦—信息安全系统设计基础第七周学习总结
  10. 伸展树 Splay 模板