http和php怎么交互,实现http与workerman的交互demo

这里主要用到wm的聊天室demo做了一个示例。

/**

* This file is part of workerman.

*

* Licensed under The MIT License

* For full copyright and license information, please see the MIT-LICENSE.txt

* Redistributions of files must retain the above copyright notice.

*

* @author walkor

* @copyright walkor

* @link http://www.workerman.net/

* @license http://www.opensource.org/licenses/mit-license.php MIT License

*/

use \Workerman\Worker;

use \Workerman\WebServer;

use \GatewayWorker\Gateway;

use \GatewayWorker\BusinessWorker;

use \Workerman\Autoloader;

use \Workerman\Connection\AsyncTcpConnection;

// 自动加载类

require_once __DIR__ . '/../../Workerman/Autoloader.php';

Autoloader::setRootPath(__DIR__);

// 这个55150端口不解析web内容,主要用于post和get,

//在web——onMessage事件取出$_GET和$_POST的数据,相当于仅作API接口

$web = new Worker("http://0.0.0.0:55150");

// WebServer进程数量固定为1

$web->count = 1;

//开启一个AsyncTcpConnection转发器

// 设置访问对方主机的本地ip及端口(每个socket连接都会占用一个本地端口)

$context_option = array(

'socket' => array(

// ip必须是本机网卡ip,并且能访问对方主机,否则无效

'bindto' => '127.0.0.1:2333',

),

);

$con = new AsyncTcpConnection('ws://127.0.0.1:7272', $context_option);

//用ATC做中转来和Http的数据做收发交互

//主要WEB启动的时候做ATC转发器的事件初始化

$web->onWorkerStart = function($web)

{

file_get_contents('http://a-vi.com/api/send2qw/?WorkerMan_Web回调:服务启动');

// $web->send('receive success');

// 这个网址是我的消息接收器,

GLOBAL $con;

// 中转器链接到workerman的时候自动以一个客户端身份登录,并保持在线

$con->onConnect = function($con) {

$con->send('{"type":"login","client_name":"邓伟(企业微信小秘书)","room_id":"1"}');

};

// 中转器收到workerman消息的时候做转发处理

$con->onMessage = function($con, $dat) {

echo "\r\n GC收到来自GM的消息:$dat \r\n \r\n";

$data=json_decode($dat);

switch($data->type){

// 服务端ping客户端

case 'ping':

$con->send('{"type":"pong"}');

break;;

// 登录 更新用户列表

case 'login':

//{"type":"login","client_id":xxx,"client_name":"xxx","client_list":"[...]","time":"xxx"}

file_get_contents('http://a-vi.com/api/send2qw/?电子黑板回发【登录】'.$data->client_name);

break;

// 客户端发言 message: {type:say, to_client_id:xx, content:xx}

case 'say':

//{"type":"say","act":"talk_text","from_client_id":xxx,"to_client_id":"all/client_id","content":"xxx","time":"xxx"}

if($data->act=='talk_text'){

$newmsg=$data->content;

}else{

$newmsg=':'.substr($dat,100);

}

file_get_contents('http://a-vi.com/api/send2qw/?电子黑板回发【消息】('.$data->from_client_name.'说:)'.$newmsg);

break;

// 登录 更新用户列表

case 'logout':

//{"type":"logout","from_client_id":xxx,"from_client_name":"xxx","time":"xxx"}

file_get_contents('http://a-vi.com/api/send2qw/?电子黑板回发【关闭】'.$data->from_client_name);

break;

}

};

// 开始登录

$con->connect();

};

// web worker 收到来自http数据的时候取出来通过ATC转发给workerman

$web->onMessage = function($conn, $data)

{

if(isset($data['get']['msg'])){ //注意 ico 请求过滤

GLOBAL $con;

$con->send('{"type":"say","act":"talk_text","to_client_id":"all","to_client_name":"所有人","content":"'.$data['get']['msg'].'"}');

//ws.send('{"type":"say","act":"talk_text","to_client_id":"all","to_client_name":"所有人","content":"【图灵回答】:'+data.text+'"}');

// file_get_contents('http://a-vi.com/api/send2qw/?WorkerMan_Web回执:'.$data['get']['msg']);

// $web->send('receive success');

print_r($data['get']['msg']);

}

$conn->close("hello\n");

};

// 如果不是在根目录启动,则运行runAll方法

if(!defined('GLOBAL_START'))

{

Worker::runAll();

}

其他就看附件了吧。

--------------------------------补充,源本发了完整demo附件,被人说有广告嫌疑,已经删除。不再分享

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

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

相关文章

16路开关量光端机产品功能及接线图

飞畅科技生产的16路开关量光端机,可以使开关量信号通过光缆在光纤上传输双向控制。全数字光传输通道,确保高质量的信号传输。面板上有电源指示灯、光信号指示灯数据信号指示灯,可以直观的检测电源、光信号、数据信号状态。单向系列开关量光端…

【渝粤教育】电大中专新媒体营销实务 (2)_1作业 题库

1.新媒体在进行内容传播时,可以做到将文字、图片、视频等同时传播,呈现出()的特点。 A.移动化 B.多元化 C.便捷性 错误 正确答案:左边查询 学生答案:A 2.第四媒体发展到宽带互联网阶段成为(&…

matlab查找替换指令,使用matlab GUI在.txt文件中编辑特定数字使用搜索/替换

使用matlab GUI在.txt文件中编辑特定数字使用搜索/替换 我有一堆不同的模板.txt文件,我想由Matlab中的用户访问。这些模板看起来像这样,但是有一些主要的区别,我将解释:LOAD BOX 1 SUBJ M1_299633_D295158_JUN191910_Aut_ERROR2 E…

【渝粤教育】电大中专电商运营实操 (18)作业 题库

1.电子商务具有全球性特点,不受空间的限制,但受时间的限制。 ( ) A.正确 B.错误 错误 正确答案:左边查询 学生答案:未作答 2.电子商务最重要的是“商务”,而网站只不过是电子商务的后台支撑。 &…

【渝粤教育】电大中专电子商务网站建设与维护 (2)作业 题库

VBScript的运算符号包括() A.算数运算符 B.逻辑运算符 C.字符串(连接)运算符 D.比较运算符 E.以上都正确 正确答案:E 查看答案 2.Buffer从英文直译过来的意思是“缓冲区”,缓冲区是指服务器内存中的一块区域…

电话光端机安装步骤详解

光端机是光信号传输的终端设备,其主要作用是把传统的电话信号转换成光信号并在光纤上传输的设备,是随着光线技术的发展而出现的光端机产品。那么,电话光端机是怎么安装的呢?今天就由飞畅科技的小编来为大家介绍下电话光端机的详细…

更深入地了解Java 8 Date and Time API

在这篇文章中,我们将更深入地了解通过Java 8获得的新的Date / Time API( JSR 310 )。 请注意,本文主要由显示新API功能的代码示例驱动。 我认为这些示例是不言自明的,因此我并没有花太多时间在它们周围写文本:-) 让我…

matlab怎么提取特征,matlab – 了解提取特征的编码

我关注的编码是fisher编码,因为我已经证明我的工作效果最好.所以我想在我提取的(SIFT)功能上测试Fisher编码,并测试系统的性能,无论是否编码.而不是重新开始我发现vl_feat有一个用于fisher编码的内置库,他们有一个教程,以及链接here现在我已经完成了所需的大部分工作,但实际上编…

【渝粤教育】电大中专药剂学基础知识 (3)作业 题库

1.胶囊剂不检查的项目是()。 A.装量差异 B.崩解时限 C.硬度 D.水分 E.外观 正确 正确答案:左边查询 学生答案:C 2.成裂片和顶裂的原因正确的是()。 A.压力分布的不均匀 B.颗粒中细粉太多 C.颗粒过干 D.弹性…

【渝粤教育】电大中专计算机应用基础_1作业 题库

1.反映计算机存储容量的基本单位是() A.字节 B.字 C.二进制位 D.双字 正确 正确答案:左边查询 学生答案:A 2.巨型计算机指的是() A.重量大 B.功能强 C.体积大 D.耗电量大 错误 正确答案:左边查询 学生答案:A 3.在微型计算机中,下列…

关于光端机的一些常见术语解释

光端机,就是光信号传输的终端设备。今天飞畅科技的小编就来为大家详细介绍下光端机的类型,接口种类及厂家的术语,感兴趣的朋友就一起来详细了解下吧! 一、光端机类型: 光端机,就是将多个E1(一种…

php 站内搜索引擎,淘特站内搜索引擎For PhoCmsV9.4

一、产品特点:该产品是淘特站内搜索引擎For PhpCmsV9特别定制版,系统安装后,就可以索引、模糊查询PhpCmsV9的文章数据了(无需连接数据库哦)二、产品下载:三、使用说明:提示:本系统已和tomcat7打包&#xff…

【渝粤教育】电大中专跨境电子商务理论与实务 (31)作业 题库

1.在按照服务类型中,()服务平台主要是为境内外会员商户提供网络营销平台,传递供应商或采购商等商家的商品或服务信息,促成双方完成交易。 A.信息服务平台 B.在线交易平台 C.线上服务平台 D.线下交易平台 正确 正确答案…

交换机组网常见九大故障问题

交换机是一种用于电信号转发的网络设备。它可以为接入交换机的任意两个网络节点提供独享的电信号通路。最常见的交换机是以太网交换机。其他常见的还有电话语音交换机、光纤交换机等。那么,交换机组网常见九大故障问题有哪些呢?接下来我们就跟随飞畅科技…

python qtdesigner安装,PyCharm+Qt Designer+PyUIC安装配置教程详解

Qt Designer用于像VC的MFC一样拖放、设计控件PyUIC用于将Qt Designer生成的.ui文件转换成.py文件Qt Designer和PyUIC都包含在PyQt5中,所以我们只需要安装PyQt5塻块然后再指定Qt Designer和PyUIC即可为了避免篇幅过长,本文只讲安装配置,使用可…

国家开放大学2021春1089现代教育思想答案

教育 教育 试卷代号:1089 2 0 2 1年春季学期期末统一考试 现代教育思想 试题答案及评分标准(开卷) (供参考) 2021年7月 一、填空题(共4题,每空1分,共10分) 1&#xff0…

[渝粤教育] 西南科技大学 建筑制图 在线考试复习资料

建筑制图——在线考试复习资料 一、单选题 1.截平面通过锥顶完全截割圆锥时,截交线为( ) A.椭圆 B.抛三角形 C.四边形 D.圆 2.下列说法正确的是( ) A.投影面垂直线满足中心投影规律 B.投影面垂直线可以在两个投影面反映集聚性 C.直线垂直于一个投影面,必然平行于其余两个投影面…

可网管交换机的三种管理方式介绍

交换机的按是否可网管,分为可网管交换机和不可网管交换机,可网管交换机可以通过以下几种途径进行管理:通过RS-232串行口(或并行口)管理、通过网络浏览器管理和通过网络管理软件管理。接下来就由杭州飞畅科技来为大家详…

ping cat.flag.php,关于2020年强网杯-强网先锋-主动的赛题解析

原标题:关于2020年强网杯-强网先锋-主动的赛题解析一、基本信息(总概述)本题涉及知识点:命令执行正则匹配linux命令绕过二、基本环境和工具Linux系统PHPApacheFirefoxIndex.phpFlag.php三、Writeup1、根据题目要求还原实验环境首先在Linux虚拟机上安装Ap…

使用Prometheus发现在Kubernetes上运行的应用程序

Prometheus支持抓取应用程序的多个实例。 由于其IP地址会发生变化,因此需要动态发现在协调环境中运行的应用程序。 可以将Prometheus配置为使用Kubernetes API动态地发现正在运行的实例列表中的更改。 下面显示了一个简单的Prometheus示例,该示例对具有…