php event监听

2023-11-11

<?php


//连接重用
//创建资源流的上下文
$context=stream_context_create([
    'socket'=>[
        'backlog'=>2000
    ]]);
stream_context_set_option($context,'socket','so_reuseaddr',1); //设置连接重用
//sock_set_option($this->server, SOL_SOCKET, SO_REUSEADDR, 1); //复用还处于 TIME_WAIT
$socket = stream_socket_server("tcp://0.0.0.0:8090", $errno, $errstr,STREAM_SERVER_BIND | STREAM_SERVER_LISTEN,$context);
stream_set_blocking($socket,false);//非阻塞
//绑定事件
$base=new EventBase();
//监听服务端的socket
$event=new  Event($base,$socket,Event::PERSIST |Event::READ | Event::WRITE,function ($socket)use(&$base){

    $client = stream_socket_accept($socket);
    //stream_set_blocking($client,false);//非阻塞
//        var_dump($client);
//        $content='21335435';
//        $string="HTTP/1.1 200 OK\r\n";
//        $string.="Content-Type: text/html;charset=utf-8\r\n";
//        $string.="Content-Length: ".strlen($content)."\r\n\r\n";
//        fwrite($client,$string.$content);
//        fclose($client);

    //global $base;

    //var_dump($socket,$client);

    $base=new EventBase();
    //监听客户端socket
    $event=new  Event($base,$client,Event::PERSIST |Event::READ | Event::WRITE,function ($client){
        $msg=fread($client,65535);
//
//         if($msg){ //匹配请求头包含了keep-alive
//
//         }

        $content='21335435';
        $string="HTTP/1.1 200 OK\r\n";
        $string.="Content-Type: text/html;charset=utf-8\r\n";
        $string.="Connection: keep-alive\r\n";
        $string.="Content-Length: ".strlen($content)."\r\n\r\n";
        fwrite($client,$string.$content);

        //fclose($client);


        //当socket断开连接,删除事件

        //$event->del();//删除事件


    });
    $event->add(); //加入事件监听
    $base->loop();

    //监视客户端
    //$event->del();//删除事件
});
$event->add(); //加入事件监听
var_dump($base->loop()); //调度挂起事件监听






本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

php event监听 的相关文章

  • WordPress 中的 add_action 函数

    嗯 我正在学习创建一个 WordPress 插件 我下载了一个并阅读了代码 然后我看到了这个 我假设 foo 是它将添加操作的标签 但是 array 到底是做什么的呢 add action foo array foo1 foo2 我在看ht
  • ORDER BY 字段内的 MySQL 子查询。 (没有内连接)

    有很多与此相关的问题 但都具有使用内部联接的相同答案 这 我认为 在这里是不可能的 如果我错了请告诉我 我现在正在做的是调用两个不同的 mysql 查询来获取结果 它工作完美 db gt query SELECT FROM meta WHE
  • PHP MySql 百分比

    我的问题是关于百分比 我不是专家 所以我会尽力以更好的方式进行解释 我的 mysql 服务器中有一个表 假设有 700 条记录 如下所示 Name country language Birth Lucy UK EN 1980 Mari Ca
  • PHP 如何判断用户是否按下了 Enter 键或 Submit 按钮?

    我遇到的问题是我在一个表单中有多个提交输入 每个提交输入都有不同的值 我更愿意将它们保留为提交 Whenever the user presses Enter it is as though the topmost submit input
  • 检查php中位字段是否打开的正确方法是什么

    检查位字段是否打开的正确方法是什么 在 php 中 我想检查来自 db mysql 的位字段是否打开 这是正确的方法吗 if bit 1 还有其他方法吗 我看到有人使用代码ord http jameslow com 2008 08 12 m
  • PHP 会话不适用于游戏

    我正在尝试模仿一款名为 SKUNK 用骰子玩 的游戏来完成一项作业 我无法让会话正常工作 这是我第一次使用 PHP 我还被告知无需会议即可完成 这是我的代码
  • 生成大随机数 php [重复]

    这个问题在这里已经有答案了 我想使用 PHP 生成一个包含 75 个字符的数字 我到处寻找 但一无所获 除了这个 http dailycoding com tools RandomNumber aspx http dailycoding c
  • 如何从父类函数访问子类中定义的常量?

    我从 php net 看到这个例子 但 c MY CONST 仅在 5 3
  • 如何使用 php 发送服务器错误响应?

    一旦用户点击删除按钮我的 jQuery 脚本要求服务器删除所选项目 现在我想要我的php发送成功或错误响应的脚本 是否有可能触发错误回调万一该项目无法删除 Thanks 我的 jQuery 代码 ajax type post url myA
  • 扩展蓝图类?

    我想覆盖timestamps 函数中发现Blueprint班级 我怎样才能做到这一点 e g public function up Schema create users function Blueprint table table gt
  • 蛋糕控制台 2.2.1:烘焙错误

    运行 MAMP 的 OSX 机器 CakePHP 2 2 1 已正确安装和配置 这意味着当我浏览到 Index php 文件时 所有绿色条都显示出来 我已经完成了博客教程 并且正在开发我的第二个应用程序 其中脚手架已启动并运行 现在我第一次
  • Symfony2 Assetic 和 Less Sourcemaps

    我不确定如何破解 assetic less 过滤器以输出源映射文件 我这里指的是LessFilterhttps github com kriswallsmith assetic blob master src Assetic Filter
  • 在 PHP 中撤销 Google 访问令牌

    正如标题所示 我想以编程方式撤销授予的访问令牌 即在 PHP 中 我发现这个他们的网站 https developers google com identity protocols OAuth2WebServer tokenrevoke 但
  • PHP 与 MySQL 查询性能( if 、 函数 )

    我只看到这个artice http www onextrapixel com 2010 06 23 mysql has functions part 5 php vs mysql performance 我需要知道在这种情况下什么是最好的表
  • 通过 $_SESSION 从一个脚本发送到另一个脚本期间数据丢失

    我正在尝试将一个充满属性的对象从一个 PHP 发送到另一个 PHP SESSION object obj where obj是一个用 foreach 循环指定的对象 foreach array of objects as obj SESSI
  • Woocommerce 结账自定义选择字段

    我有以下功能 将选择列表添加到 woo commerce 结账表单中 woocommerce form field airport pickup array type gt select class gt array airport pic
  • 如果循环中内存超出,我可以在 for 循环中抛出异常吗?

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 如何处理 foreach 循环中发生
  • CURL 中的 data-urlencode 是什么意思?

    我搜索了很多个小时试图弄清楚 php curl 中的 data urlencode 是什么 我尝试过这个 但我认为这是不对的 xmlpost object1 file https www lob com goblue pdf 在文档中是 d
  • ini_set 'session.gc_maxlifetime' 为 1 天

    If I do ini set session gc maxlifetime 86400 这是否意味着用户可以将浏览器留在同一页面 非活动状态 最多 1 天 而不必担心会话被垃圾收集并被注销 如果服务器配置不支持此功能会发生什么 它会给我一
  • 无法显示 Laravel 欢迎页面

    我的服务器位于 DigitalOcean 云上 我正在使用 Ubuntu 和 Apache Web 服务器 我的家用计算机运行的是 Windows 7 我使用 putty 作为终端 遵循所有指示https laracasts com ser

随机推荐

  • 遇到Uncaught SyntaxError: missing ) after argument list 解决小思路

    vscode运行前端代码程序没有报错 控制台报错 SyntaxError missing after argument list 意思是有语法错误 仔细检查是es6语法低版本浏览器不支持导致的 升级最新版chrome浏览器 就解决了 这只是
  • 基于C++的水灵VTK8学习笔记3(VTK图形处理)

    VTK资料分享 张晓东的 VTK图形图像开发进阶 全套资料 包含书籍电子版 配套每章节所有源码 实现效果图和工程配置文件 水灵VTK学习全套资料 包含全部视频 PPT 源码和每个项目对应的工程配置文件CmakeLists txt 水灵VT视
  • Element中el-select下拉框无法回显

    使用elementUI时 在页面编辑时 下拉框回显数据有问题 这里主题类型默认选中类型为1的主题 并显示主题类型
  • 将一个有序的链表转化为一个二叉搜索树

    题目 Given a singly linked list where elements are sorted in ascending order convert it to a height balanced BST 解题思路 解决这道
  • 解决SpringBoot jar包中的文件读取问题

    前言 SpringBoot微服务已成为业界主流 从开发到部署都非常省时省力 但是最近小明开发时遇到一个问题 在代码中读取资源文件 比如word文档 导出模版等 本地开发时可以正常读取 但是 当我们打成jar包发布到服务器后 再次执行程序时就
  • Qt--自定义搜索控件,QLineEdit带前缀图标

    写在前面 这里自定义一个搜索控件 通过自定义LineEdit的textChange信号 搜索指定内容 并以QCheckBox的方式显示在QListWidget中 开发版本 Qt 5 15 2 Qt Creator10 0 2 编译环境 ms
  • 解决Failed to connect to 127.0.0.1 port 1080: Connection refused 报错

    https www jianshu com p 13099813f23d 解决Failed to connect to 127 0 0 1 port 1080 Connection refused 报错 0 4842018 07 03 14
  • 零基础JAVA——黑马程序员课程笔记

    视频地址 点击访问 我这里开发工具有时候用eclipse有时候用IDEA 看每个人的习惯 文中代码部分不会和老师讲的一模一样 因为我都是在看到老师给的案例后自己尝试写的 推荐大家这样做 可以帮助大家掌握 文章目录 JAVA语言发展史 JAV
  • 阿里云centos7安装mongodb,并开启远程连接

    1 下载mongodb 使用命令 curl O https fastdl mongodb org linux mongodb linux x86 64 3 2 9 tgz 2 上传到服务器 我这里用的是阿里云的远程服务器 并解压和重命名 r
  • charles使用

    安装 HTTPS的SSL证书配置 windows电脑 管理员模式打开Charles gt help gt SSL Proxying gt Install Chrales Root Certificate 安装证书 gt 下一步 gt 选择证
  • Gradle自定义插件详解

    首先认识plugin plugin采用groovy语言来编写 如果你对groovy语言不是很熟悉 请首先过一下groovy语法结构 groovy是运行于JVM的敏捷脚本语言 其最后会被编译成标准的JAVA语言 groovy语言最核心的应该是
  • ZIGBEE抓包工具Ubiqua使用介绍

    一 软件安装 Ubiqua 软件下载链接 https download csdn net download m pfly fish 12050973 二 安装CC2531抓包驱动 驱动软件下载链接 https download csdn n
  • Android am命令启动Service,Activity,BroadcastReceiver

    m命令启动Service Activity BroadcastReceiver 在frameworks base cmds am src com android commands am 一 am命令启动Activity am start n
  • Vlc.DotNet播放本地文件时的路径编码

    在播放本地媒体文件时 VLC会对文件路径进行编码 将中文字符编码为utf 8 在程序中也需要如此 否则不能正常播放 C 中可以用 System Web HttpUtility UrlEncode string System Text Enc
  • LR安装遇到 Cannot save the license information because access to the registry is denied

    在安装LoadRunner11时 会出现多种问题 在此以我遇到的问题一一进行解决 1 在首先安装时导入注册文件会遇到一个错误 就是 此时你需要一个工具 deletelicense 清除注册表信息的一个工具 可以轻易下载到 然后把LoadeR
  • 深入理解C++中的move和forward!

    导语 在C 11标准之前 C 中默认的传值类型均为Copy语义 即 不论是指针类型还是值类型 都将会在进行函数调用时被完整的复制一份 对于非指针而言 开销及其巨大 因此在C 11以后 引入了右值和Move语义 极大地提高了效率 本文介绍了在
  • 保险智能理赔-医疗票据OCR识别解决方案

    基于对健康险理赔行业的深刻洞察和理解 以领先的医疗AI数智化能力打通健康险理赔全流程 通过RPA人机协作实现对理赔材料的智能录入和初审工作 释放大量的专业录单和审核人力 减少企业运营成本 面临痛点 1 人工录入成本高 涉及个人证件 保险单据
  • Visual Attention Network(VAN)

    Visual Attention Network阅读翻译笔记 原文 https arxiv org abs 2202 09741 代码 https github com Visual Attention Network 摘要 虽然最初是为自
  • oracle 排序后取中间的数据

    用minus取 3000和5000的差值 排序后取序列为3000 5000的数据 select from table name t where rownum lt 5000 order by t sn asc minus select fr
  • php event监听