swoole通用类库,不管你用的什么框架,一个类库全部搞定!!!

Swoole-真正的PHP Web开发框架 一、Swoole框架介绍swoole是一套设计非常精巧,有效提高开发效率的PHP框架。Swoole有统一的唯一全局对象,类似于Java的注册树,挂载了常用的一些对象,如数据库、模板引擎、缓存系统、日志系统、事件处理系统等。可以很方便地调用功能,快速开发。使用swoole框架,仅需配置一个config.php文件,在其他PHP文件中只需要require config.php文件,即可调用框架的所有功能。swoole通过配置文件可以实现在轻松更换模块驱动方式。比如数据库连接,可以很方便得在Pdo MySQL M 阅读详情

       研究swoole一段时间了,但是swoole对于新手来说还是有一定的难度的,所以今天研究了下,写了一个通用的类库,这样可以直接在框架中引入调用就可以了,不多说,看代码吧.

 先看一个代码的结构图:

                                      

也许熟悉TP5.1的小伙伴们看出来了,没错,这里面演示的就是在Tp5.0中的调用

 

先是关键核心的Http.php文件:

<?php
namespace sockets\socket6;
use sockets\socket6\Predis;
require_once 'Predis.php';
/**
 *    socket面向对象的编译
 */
class Http
{
    CONST HOST = '0.0.0.0';
    CONST PORT = '12316';
    public $ws = null;
    public $client = null;
    private $key = 'paiv3@$))(';
    private $prefix = 'paiv3_';
    public $pwd = "/www/wwwroot/wanguopai/swoole/";

    public function __construct()
    {
        // $this->ws=new \swoole_websocket_server(self::HOST,self::PORT,SWOOLE_PROCESS, SWOOLE_SOCK_TCP | SWOOLE_SSL);
        $this->ws = new \swoole_websocket_server(self::HOST, self::PORT);
        $this->ws->set([
            //心跳检测
            'heartbeat_check_interval' => 60,
            'heartbeat_idle_time' => 600,
            //设置证书,实现wss连接
            // 'ssl_cert_file' => $this->pwd.'pai.wanguo.net.crt',
            // 'ssl_key_file' => $this->pwd.'pai.wanguo.net.key',
        ]);
        //监听新端口
        $this->client = $this->ws->listen("127.0.0.1", 12317, SWOOLE_SOCK_TCP);
        //关闭websocket模式
        $this->client->set([
            'open_websocket_protocol' => false,
        ]);
        $this->ws->on("start", [$this, 'onStart']);
        $this->client->on("receive", [$this, 'onReceive']);
        $this->ws->on('message', [$this, 'onmessage']);
        $this->ws->on('close', [$this, 'onclose']);
        $this->client->on('close', [$this, 'oncloses']);
        $this->ws->start();
    }

    //监听数据接收事件
    public function onReceive($serv, $fd, $from_id, $data)
    {
        $data = json_decode($data, true);
        //成交
        if ($data['type'] == 'done') {
            self::push_room($data['room_id'],$data);
            $data['tips']=$room_id."已成交,最终成交价格:¥".$price."元";
            //推送全部
            self::push_all($data);
        }elseif ($data['type'] == 'msg') {
            //个人
            if ($data['totype']=='single') {
                unset($data['totype']);
                $id=$data["toid"];
                unset($data['toid']);
                self::push_single($id,$data);
            //房间
            }elseif ($data['totype']=='room') {
                unset($data['totype']);
                $id=$data["toid"];
                unset($data['toid']);
                self::push_room($id,$data);
            //全部
            }elseif ($data['toty
thinkphp6 swoole-rpc 基于thinkphp6(tp6)+ swoole的rpc框架实现 浏览了大量关于php 的rpc,但是多数为原生php实现rpc的demo。虽然很多人都知道rpc 的原理,但是对于编写代码并没有一个直观的感受,所以这次手写一个自定义rpc框架,基于使用tp6来完成rpc框架。这次以代码为主,中间使用的一些技术分享,理论性的东西不在一一概括,用最简单的话来解释其中很多技术!(如果对rpc不太了解的话,请翻上一篇文章) 概括 简述:client端调用server端 如果server端的代码为本地则是本地调用,如果server端的代码在另外一台机器就需要远程调用(Rp 阅读详情

相关推荐

Yii2的异步多线程服务之swoole

欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦: Markdown和扩展Markdown简洁的语法 代码块高亮 图片链接和图片上传 LaTex数学公式 UML序列图和流程图 离线写博客 导入导出Markdown文件 丰富的快捷键 快捷键 加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl

小刚的博客 2万+

ciswoole:带有 Swoole_Http_Server 的 CodeIgniter 2.2

丝绒 带有 Swoole Http_Server 的 CodeIgniter 2.2 要求 PHP 5.3+ Swoole 1.7.16 Linux、OS X 和基本的 Windows 支持(认为 cygwin) 安装 Swoole 通过pecl安装 pecl install swoole 从源安装 sudo apt-get install php5-dev git clone https://github.com/swoole/swoole-src.git cd swoole-src phpize ./configure make && make install 怎么跑 1. cd ciswoole/server 2. php http_server.php 3. Open your browser and enter http://ip:9501 对比测试 这是首页对比测试

两轮差速机器人运动学模型

两轮差速底盘 1.1、底盘说明 两轮差速底盘由两个动力轮位于底盘左右两侧,两轮独立控制速度,通过给定不同速度实现底盘转向控制。一般会配有一到两个辅助支撑的万向轮。 主要底盘有: 1、Turtlebot; 2、扫地机器人; 3、无人仓AGV小车; 4、轮椅; 底盘主要特点: 1、控制简单、里程计计算简单。 2、只能给定X方向速度、Z轴方向角速度。 1.2、底盘运动学分析 1.2.1、底盘模型 图1.2.1 常见的两轮差速底盘模型 1.2.2、机器人本身约束方程(物理特性) 图1.2.2 a 左侧是车的两个

su_fei_ma_su的博客 3万+

Selenium实战:突破反爬,自动化抓取国家知识产权局专利数据

网络爬虫是数据采集的核心技术,其原理是通过程序模拟浏览器行为,自动访问网页并提取结构化信息。在数据驱动决策的今天,高效获取公开数据对市场分析、技术调研和竞争情报至关重要。然而,面对广泛应用的JavaScript动态渲染和反爬虫机制,传统的静态页面抓取方法往往失效。Selenium作为浏览器自动化工具,通过驱动真实浏览器执行JavaScript,能够有效绕过前端反爬,实现“可见即可得”的数据抓取,在需要与页面进行复杂交互或处理动态内容的场景中价值显著。本文以【专利数据】抓取为例,结合【Selenium】工具,

weixin_33881140的博客 394

卫星图像检测,分割,跟踪,超分辨率,数据集调研,以及论文笔记

目标检测,针对物体有很多类如桥,烟囱,罐子等,有静态图像下的检测,也就是图像源头多来自谷歌地图,但是前后帧没有任何联系,并且谷歌地图相对来说比较清楚,难度小一点,也有粗粒度以及较细粒度的检测,然后卫星视频的数据集较少,则可以通过前后帧的联系来辅助检测,并且卫星帧基本上只对车,船,飞机,火车进行检测,没有进行细粒度的检测即将车辆分类为卡车,皮卡,小轿车,但是关船,则可以分类为货船以及军舰,因为目前的卫星视频中小车实在太少了,难以进行更细粒度的检测。luojia 三号卫星。

zhangzhao147的博客 4707

SAP与泛微OA集成(半导体行业)

本项目通过SAP PO中间件集成SAP与泛微OA在半导体行业的应用,由于行业特殊性,广泛深入应用了RSA加密等特性

集信通 1164

(一)ANSYS WORKBENCH实践入门

ANSYS-workbench 有限元分析应用基础教程 (张晔)学习笔记

qq_51767372的博客 1万+

如何利用gretna软件计算脑网络全局属性(聚类系数,小世界属性,最短路径),局部属性指标(度,度分布,节点效率),如何理解网络稀疏度

grena工具箱被设计用于fMRI数据的图论网络分析。它是一套MATLAB函数和基于MATLAB的接口,用于常规的fMRI预处理,用于计算和统计分析最常用的网络指标,如小世界参数、效率、度、间性、关联性、层级性、同步性和模块化。......

从事脑科学核磁共振方法学研究,在Nature communications等权威期刊发表研究论文,熟练掌握磁共振处理方法和统计学方法,欢迎大家和我交流。 9174

深入理解JVM虚拟机第一篇:Java跨平台和字节码以及多语言混合编程

本位描述了Java的跨平台和JVM的跨平台的作用,Java语言的字节码的概念多语言混合编程应用到JVM虚拟机以及Java发展的重大事件。

七叔的博客 1万+

超声波传感器(CHx01) 学习笔记 Ⅲ-API介绍

超声波传感器(CHx01) API介绍

nicole088的专栏 1387

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

上一篇: golang在linux后台执行的方法
下一篇: golang实现直播和点播功能
yí無所冇
博客等级 码龄9年 78粉丝 92原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值