Swoole

lumen单元测试

喜欢而已 提交于 2020-04-18 13:35:04
phpunit --filter testInfo tests/UserTest.php UserTest.php <?php use Laravel\Lumen\Testing\DatabaseMigrations; use Laravel\Lumen\Testing\DatabaseTransactions; class UserTest extends TestCase { public function testInfo() { dd(4444444); $swoole = app('swoole'); var_dump($swoole); } }    来源: oschina 链接: https://my.oschina.net/u/4321566/blog/3274089

PHP7的一些特性用法

跟風遠走 提交于 2020-04-18 11:38:18
1.use的用法 <?php // PHP 7 之前版本用法 use some\namespace\ClassA; use some\namespace\ClassB; use some\namespace\ClassC as C; use function some\namespace\fn_a; use function some\namespace\fn_b; use function some\namespace\fn_c; use const some\namespace\ConstA; use const some\namespace\ConstB; use const some\namespace\ConstC; // PHP 7+ 用法 use some\namespace\{ClassA, ClassB, ClassC as C}; use function some\namespace\{fn_a, fn_b, fn_c}; use const some\namespace\{ConstA, ConstB, ConstC}; ?> 2.序列号函数unserialize的新增了过滤功能 // 转换对象为 __PHP_Incomplete_Class 对象 $data = unserialize($foo, ["allowed_classes" => false])

centos安装php扩展swoole及使用

佐手、 提交于 2020-04-18 03:32:27
swoole是一个PHP的异步、并行、高性能网络通信引擎,使用纯C语言编写,提供了PHP语言的异步多线程服务器,异步TCP/UDP网络客户端,异步MySQL,异步Redis,数据库连接池,AsyncTask,消息队列,毫秒定时器,异步文件读写,异步DNS查询。 Swoole内置了Http/WebSocket服务器端/客户端、Http2.0服务器端。 Swoole可以广泛应用于互联网、移动通信、企业软件、云计算、网络游戏、物联网(IOT)、车联网、智能家居等领域。 使用PHP+Swoole作为网络通信框架,可以使企业IT研发团队的效率大大提升,更加专注于开发创新产品。 注意事项: 1、server.php中的ip地址必须是外网可访问地址 http://47.105.128.101 ,不能为localhost 1、安装 wget https://github.com/swoole/swoole-src/archive/swoole-1.7.6-stable.tar.gz tar zxvf swoole-1.7.6-stable.tar.gz cd swoole-1.7.6-stable phpize ./configure --with-php-config=/usr/local/php/bin/php-config make && make install 提示: Build

swoole 安装测试

我的梦境 提交于 2020-04-18 02:08:17
Swoole安装 安装完PHP后,即可安装swoole扩展。 swoole扩展下载地址: https://github.com/swoole/swoole-src/releases 尽量选择stable版本,alpha版本最好仅用于实验新特性。 解压源码至任意目录,执行如下命令: cd swoole-src-swoole-1.7.6-stable/ phpize ./configure --enable-async-mysql sudo make sudo make install (注:swoole的./configure有很多额外参数,可以通过./configure --help命令查看,这里仅开启其中async-mysql项,其他均选择默认项) 安装完成后,进入sudo gedit /etc/php5/fpm/目录下,打开php.ini文件,在其中加上如下一句: extension=swoole.so 随后在终端中输入命令 php -m 查看扩展安装情况。如果在列出的扩展中看到了swoole,则说明安装成功。 问题 遗憾的是,我的 phpinfo 有 swoole 了,但是php -m 却发现不了,果断推断是 php.ini 配置问题,于是乎,修改了 sudo gedit /etc/php5/cli/php.ini .同样添加了 extension=swoole.so,

centos7.5安装swoole扩展组件

感情迁移 提交于 2020-04-18 02:07:47
第一步: 下载解压swoole yum install unzip zip -y wget https://soft.itbulu.com/wdcp/swoole-src-swoole-1.7.21-stable.zip unzip swoole-src-swoole-1.7.21-stable.zip cd swoole-src-swoole-1.7.21-stable 第二步:安装编译swoole phpize 我们需要能看到上图中的提示才能继续下一步。 ./configure --with-php-config=/www/server/php/ 56 /bin/php-config 注意:PHP版本问题,我当前注册环境是PHP5.6找到对应的目录。 第三步:安装swoole make install 完毕之后我们可以看到extensions这一行的路径,我们要复制,等会要添加到php.ini中。 第四步:添加swoole扩展 extension=/www/server/php/56/lib/php/extensions/no-debug-non-zts-20131226/swoole.so 将扩展路径添加到对应php.ini文件中,重启宝塔面板生效。 service bt restart 最后,我们通过php -m检查下当前安装的扩展有没有swoole。

基于 Hyperf 实现 RabbitMQ + WebSocket 消息推送

痴心易碎 提交于 2020-04-17 21:38:51
思路 利用 WebSocket 协议让客户端和服务器端保持有状态的长链接,保存链接上来的客户端 id。订阅发布者发布的消息针对已保存的客户端 id 进行广播消息。 WebSocket 服务 composer require hyperf/websocket-server    配置文件 [config/autoload/server.php] <?php return [ 'mode' => SWOOLE_PROCESS, 'servers' => [ [ 'name' => 'http', 'type' => Server::SERVER_HTTP, 'host' => '0.0.0.0', 'port' => 11111, 'sock_type' => SWOOLE_SOCK_TCP, 'callbacks' => [ SwooleEvent::ON_REQUEST => [Hyperf\HttpServer\Server::class, 'onRequest'], ], ], [ 'name' => 'ws', 'type' => Server::SERVER_WEBSOCKET, 'host' => '0.0.0.0', 'port' => 12222, 'sock_type' => SWOOLE_SOCK_TCP, 'callbacks' => [ SwooleEvent

Swoole4创建Mysql连接池

£可爱£侵袭症+ 提交于 2020-04-06 02:35:12
一 .什么是mysql连接池 场景: 每秒同时有1000个并发,但是这个mysql同时只能处理400个连接,mysql会宕机。 解决方案: 连接池,这个连接池建立了200个和mysql的连接,这1000个并发就有顺序的共享这连接池中的200个连接。这个连接池能够带来额外的性能提升,因为这个和mysql建立连接的这个过程消耗较大,使用连接池只需连接一次mysql。 连接池定义: 永不断开,要求我们的这个程序是一个常驻内存的程序。数据库连接池(Connection pooling)是程序启动时建立足够的数据库连接,并将这些连接组成一个连接池,由程序动态地对池中的连接进行申请,使用,释放。 二.小案例 查找用户表数据库最新注册的3个会员? (1)小提示 show processlist #mysql查看连接数 (2)创建10个mysql连接示例代码 <?php /** * Created by PhpStorm. * User: Luke * Date: 2019/10/30 * Time: 14:12 */ //编写mysql连接池,这个类只能被实例化一次(单例) class MysqlConnectionPool { private static $instance;//单例对象 private $connection_num = 10;//连接数量 private

基于pcntl的PHP进程池

孤人 提交于 2020-03-26 14:46:28
3 月,跳不动了?>>> 想必大家都知道可以通过多进程或者多线程的方式实现异步。 PHP多进程编程当前主要有这几种方式: 基于pcntl实现多进程,这也是PHP自带的多进程玩法 Swoole自己修改PHP内核代码,从而实现多进程,这个看起来比较新 Swoole自己修改PHP内核代码,从而实现多进程 inple_fork这个库,实现了多进程和进程池。 一,安装 用composer安装。 composer require jenner/simple_fork 二,使用 simple_fork这个库自带了很多内容,在此主要跟大家分享进程和进程池的使用,其他内容可以自行查看demo。 没有用过composer的朋友,需要根据自己的代码路径,导入autoload.php,在此略过。 需要在命令行下运行。 1.进程 使用步骤大致如下: 任务是一个实现了Runnable接口的类,或者直接用callback也可以。 初始化子进程Process,并把任务实例作为参数传递过去 最后start开启子进程,wait用于等待子进程运行结束(否则会出现僵尸进程)。 用起来也很简单 use Jenner\SimpleFork\Runnable; use Jenner\SimpleFork\Process; class Task implements Runnable { /** * @return void *

PHP实现简单RPC

谁都会走 提交于 2020-03-26 10:11:18
3 月,跳不动了?>>> 1.什么是rpc RPC全称为Remote Procedure Call,翻译过来为“远程过程调用”。目前,主流的平台中都支持各种远程调用技术,以满足分布式系统架构中不同的系统之间的远程通信和相互调用。远程调用的应用场景极其广泛,实现的方式也各式各样。 2.从通信协议的层面 基于HTTP协议的(例如基于文本的SOAP(XML)、Rest(JSON),基于二进制Hessian(Binary)) 基于TCP协议的(通常会借助Mina、Netty等高性能网络框架) 3.从不同的开发语言和平台层面 单种语言或平台特定支持的通信技术(例如Java平台的RMI、.NET平台Remoting) 支持跨平台通信的技术(例如HTTP Rest、Thrift等) 4.从调用过程来看 同步通信调用(同步RPC) 异步通信调用(MQ、异步RPC) 5.常见的几种通信方式 远程数据共享(例如:共享远程文件,共享数据库等实现不同系统通信) 消息队列 RPC(远程过程调用) 6.php实现简单的rpc 目录结构 rpc服务端 <?php /** * User: yuzhao * CreateTime: 2018/11/15 下午11:46 * Description: Rpc服务端 */ class RpcServer { /** * User: yuzhao * CreateTime

解决PHP SWOOLEC loader ext not installed方法教程

人盡茶涼 提交于 2020-03-25 13:21:28
3 月,跳不动了?>>> PHP环境报错SWOOLEC loader ext not installed,SWOOLEC loader没有安装导致的,SWOOLEC loader是PHP的一个组件,安装SWOOLEC loader即可解决问题,码笔记分享 SWOOLEC loader ext not installed 的解决方法: 解决方法SWOOLEC loader ext not installed 报错原因:PHP没有安装SWOOLEC loader这个组件; 解决方法:安装SWOOLEC loader,通过Swoole Compiler 安装向导来安装SWOOLEC loader。 大家的操作系统和PHP版本及环境都不同,使用《Swoole Compiler 安装向导》(类似探针)可以检测当前操作系统系统及PHP版本等信息,给出对应的SWOOLEC loader版本及安装和配置方式。详细步骤如下: 一:Swoole Compiler安装向导 1. 下载Swoole Compiler安装向导 下载地址: http://www.swoole-cloud.com/static/loader_helper/helper.zip 复制Swoole Compiler下载地址在浏览器打开,下载的helper.zip文件解压,可以得到 swoole-compiler-loader.php