【PHP】Workerman开源应用容器的GatewayWorker 与 iOS-OC对接

Workerman

开源高性能PHP应用容器

workerman是一款开源高性能PHP应用容器,它大大突破了传统PHP应用范围,被广泛的用于互联网、即时通讯、APP开发、硬件通讯、智能家居、物联网等领域的开发。

PHPSocket.io

PHP版本的socket.io,具有良好的客户端兼容性,常用于即时通讯领域

 

Linux系统快速开始(从一个精简的聊天demo开始)

1、下载demo官方网下载

2、命令行运行 unzip GatewayWorker.zip 解压缩GatewayWorker.zip

3、命令行运行 cd GatewayWorker 进入GatewayWorker目录

4、命令行运行 php start.php start 启动GatewayWorker

 

已启动状态

放行端口 

 

​​​​​​与ThinkPHP等框架结合

使用GatewayWorker时开发者最关心的是如何与现有mvc框架(ThinkPHP Yii laravel等)整合,以下是官方推荐的整合方式。见示意图:

总体原则:

现有mvc框架项目与GatewayWorker独立部署互不干扰

所有的业务逻辑都由网站页面post/get到mvc框架中完成

GatewayWorker不接受客户端发来的数据,即GatewayWorker不处理任何业务逻辑,GatewayWorker仅仅当做一个单向的推送通道

仅当mvc框架需要向浏览器主动推送数据时才在mvc框架中调用Gateway的API GatewayClient完成推送。

GatewayClient安装

参考地址 GitHub - walkor/GatewayClient: Sdk For GatewayWorker

具体实现步骤

1、网站页面建立与GatewayWorker的websocket连接

2、GatewayWorker发现有页面发起连接时,将对应连接的client_id发给网站页面

3、网站页面收到client_id后触发一个ajax请求(假设是bind.php)将client_id发到mvc后端

4、mvc后端bind.php收到client_id后利用GatewayClient调用Gateway::bindUid($client_id, $uid)将client_id与当前uid(用户id或者客户端唯一标识)绑定。如果有群组、群发功能,也可以利用Gateway::joinGroup($client_id, $group_id)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/706910.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

时间序列分析实战(八):时序的格兰杰因果检验

🍉CSDN小墨&晓末:https://blog.csdn.net/jd1813346972 个人介绍: 研一|统计学|干货分享          擅长Python、Matlab、R等主流编程软件          累计十余项国家级比赛奖项,参与研究经费10w、40w级横向 文…

C语言题目练习

目录 前言 1、网购 1.1题目 描述 输入描述: 输出描述: ​编辑 1.1 解题 2、带空格直角三角形图案 2.1题目 描述 输入描述: 输出描述: ​编辑 2.2 解题 3、小乐乐改数字 3.1 题目 描述 输入描述: 输…

编辑距离(Edit Distance)的介绍

编辑距离(Edit Distance),也称为 Levenshtein 距离,是衡量两个字符串之间相似程度的指标。它表示将一个字符串转换成另一个字符串所需的最少编辑操作次数。常见的编辑操作包括插入一个字符、删除一个字符、替换一个字符。 在 C 中…

【自然语言处理三-self attention自注意是什么】

自然语言处理三-自注意力 self attention 自注意力是什么?自注意力模型出现的原因是什么?词性标注问题解决方法1-扩展window,引用上下文解决方法2-运用seq2seq架构新问题来了:参数量增加、无法并行的顽疾 自注意力self attention模…

备战蓝桥杯————k个一组反转单链表

k个反转单链表,顾名思义就是k个节点为一组进行反转,这是一道困难的题目,如何解答,可以在我们前面的反转链表中得到思路。 如何 K 个一组反转单链表 题目描述 给你链表的头节点 head ,每 k 个节点一组进行翻转&#xf…

MySQL表分区技术介绍

目录 1. 分区概述 1.1 表分区 1.2 表分区与分表的区别 1.3 表分区的好处 1.4 分区表的限制因素 2. 如何判断当前MySQL是否支持分区? 3. 分区类型详解 3.1 MySQL支持分区类型 3.2 RANGE分区 3.2.1 根据数值范围分区 3.2.2 根据TIMESTAMP范围分区 3.2.3 根…

代码随想录训练营第45天| 70. 爬楼梯、322. 零钱兑换、279.完全平方数

70. 爬楼梯 题目链接&#xff1a;70. 爬楼梯 - 力扣&#xff08;LeetCode&#xff09; class Solution {public int climbStairs(int n) {int[] dp new int[n1];if(n < 2) {return n;}dp[0] 1;for(int i 1; i < n 1; i) {for(int j 1; j < 3; j) {if(i < j)…

MySQL中通用复用字段设计

一、MySQL数据库表设计 DROP TABLE IF EXISTS tb_loan_transfer_record; CREATE TABLE tb_loan_transfer_record (id bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 主键,loan_rerord_id bigint(20) NOT NULL COMMENT 借款记录id,loan_id bigint(20) NOT NULL COMMEN…

CSS3的颜色函数: hsl() 和 hsla() 函数

1. hsl() 函数使用色相、饱和度、亮度来定义颜色。 HSL 即&#xff1a;色相&#xff08;Hue&#xff09;、饱和度&#xff08;Saturation&#xff09;、亮度&#xff08;Lightness&#xff09;。 hue-色相 定义色相&#xff08;0到360&#xff09;-0&#xff08;或360&#…

视频mov如何转换成mp4?五分钟学会4种方法

在今天的数字时代&#xff0c;我们不可避免地需要处理各种视频文件格式。MOV格式是由苹果公司开发的一种常见视频格式&#xff0c;而MP4格式则是更为通用和广泛支持的视频格式。 因此&#xff0c;当我们需要在不同设备或平台上播放或分享视频时&#xff0c;可能需要将MOV格式的…

Eclipse是如何创建web project项目的?

前面几篇描述先后描述了tomcat的目录结构和访问机制&#xff0c;以及Eclipse的项目类型和怎么调用jar包&#xff0c;还有java的main函数等&#xff0c;这些是一些基础问题&#xff0c;基础高清出来才更容易搞清楚后面要说的东西&#xff0c;也就是需求带动学习&#xff0c;后面…

Unity开发一个FPS游戏

在之前的文章Unity 3D Input System的使用-CSDN博客中,我介绍了如何用Input System来实现一个FPS游戏的移动控制,这里将进一步完善这个游戏。 以下是游戏的演示效果: fps_demo 添加武器模型 首先是增加主角玩家的武器,我们可以在网上搜索到很多免费的3D资源,例如在以下网…

12年高级工程师的“飞升之路”,redis和rabbitmq面试题

这里写自定义目录标题 欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题&#xff0c;有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants 创建一个自定义列表如何创建一个…

Mybatis学习笔记:缓存(未完成)

本文是自己的学习笔记&#xff0c;主要参考以下资料 - 马士兵教育 1、缓存概念2、二级缓存Encache集成2.1、导入依赖2.2、 1、缓存概念 缓存是针对一些大量的重复查询&#xff0c;将查询结果存到内存中&#xff0c;减少数据库的负担。 Mybatis的缓存有三个级别。 类别说明一…

STM32 +合宙1.54“ 电子墨水屏(e-paper)驱动显示示例

STM32 合宙1.54“ 电子墨水屏&#xff08;e-paper&#xff09;驱动显示示例 &#x1f4cd;相关篇《Arduino框架下ESP32/ESP8266合宙1.54“ 电子墨水屏&#xff08;e-paper&#xff09;驱动显示示例》&#x1f516;程序是从GooDisplay品牌和微雪电子下同型号规格墨水屏的示例程序…

【C#】忽略大小的替换字符串

结果 代码 string a"aAAAAAAaBBaaCC"; string b Strings.Replace(a, "a", "D", 1, -1, CompareMethod.Text);

php基础学习之错误处理(其一)

一&#xff0c;错误处理的概念 错误处理指的是系统(或者用户)在执行某些代码的时候&#xff0c;发现有错误&#xff0c;就会通过错误处理的形式告知程序员&#xff0c;俗称报错 二&#xff0c;错误分类 语法错误&#xff1a;书写的代码不符合 PHP 的语法规范&#xff0c;语法错…

策略分析:Atlassian Server版停止支持,Server版用户应该转向数据中心版本还是云版?

自2024年2月15日起&#xff0c;Atlassian将终止对Server产品提供支持。此政策并非突然之举&#xff0c;早在2021年&#xff0c;Atlassian就停售了Server产品的许可。对于国内用户而言&#xff0c;这一决定带来了巨大的影响&#xff0c;许多企业在得知消息后就开始积极准备迁移&…

npm install webpack 下载失败

1.可以换成国内镜像 使用淘宝npm镜像 npm install -g cnpm --registryhttps://registry.npm.taobao.org 在黑窗口执行这个语句 等执行完后&#xff0c;就可以通过cnpm 来安装我们的webpack&#xff0c; cnpm install webpack3.6.0 -g2. npm install certificate has expired…

编程笔记 html5cssjs 092 JavaScript 表单控件

编程笔记 html5&css&js 092 JavaScript 表单控件 一、常见的表单控件二、JavaScript在表单控件中的应用&#xff1a;三、获取单选按钮和复选框的值获取单选按钮的值&#xff1a;获取复选框的值&#xff1a; 四、应用示例小结 表单控件是HTML中的核心元素&#xff0c;用…