自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(5)
  • 收藏
  • 关注

原创 Swoole系列1.5(Redis 服务器)

然后我们指定了 $server->data ,可以将它看成是一个数据源,直接使用的就是一个文件,直接在当前测试环境目录下创建一个叫做 db 的空文件就可以了。在 setHandler() 方法中,我们使用 send() 方法来返回响应的命令信息,并通过 format() 方法格式化返回的响应数据。服务端的意思是一个可以提供服务的应用,redis-server 才是我们最熟悉的那个 Redis 的服务端。其实它是一个基于 Redis 协议的服务器程序,可以让我们使用 Redis 的客户端来连接这个服务。

2023-09-25 10:43:27 85 1

原创 Swoole系列1.4(异步任务)

而 task_worker_num 则是根据我们的机器配置情况,以及要处理的任务情况来配置的,比如说我们这种简单的测试代码,就在 2核4G 的虚拟机上开几百上千个也不会有太大的影响。注意,我们现在是开了多个进程,不是在一个进程中,sleep() 中会阻塞当前 Task 进程,不会对返回页面的那个 Worker 进程以及其它的 Task 进程产生影响。输出的结果有疑问吗?好吧,再次转换你的思维。好了,扯了那么多,我们先来看看上面的代码的运行情况吧,同样的,启动你的这个 Http 服务,然后去浏览器请求一下。

2023-09-25 10:35:21 87 1

原创 Swoole系列1.3(WebSocket服务)

因为在 Swoole 应用中,sleep() 这一类的原生函数会直接暂停整个进程的执行,在暂停的过程中,是无法接收到任何请求消息的,不管你是进程、线程还是协程,都会暂停住。当我们的客户端连接到服务时,就会触发 Open 监听,其中在 $request 中会返回连接的 fd 信息,这是一个句柄,或者说是标识我们的客户端的一个标志。我们马上来说这 Message 的监听。它主要监听的是客户端发来的信息,当接收到客户端发来的信息后,我们直接打印信息,并将客户端发来的信息再返回给客户端表示我们收到信息了。

2023-09-25 10:21:49 40

原创 Swoole系列1.2

首先,我们实例化了一个 Server 对象,在这里我们传递了两个构造函数,一个是监听的 IP 地址,一个是端口号。综上所述,global 声明的变量、static 声明的静态变量、静态函数、PHP 原生的超全局变量都有非常大的风险,Swoole 直接干掉了默认的超全局变量,而我们如果要使用全局变量的话也有其它的处理方式。启动服务后可以查看当前的进程信息,可以看到有四条 php 进程,其中第一个是主进程,剩下三个是子进程,在子进程中,还有一个管理进程,最后两个就是我们创建的两个 Worker 进程。

2023-09-25 10:11:12 33 1

原创 Swoole系列教程 1.1

安装 Swoole 扩展并不麻烦,和其它的 PHP 扩展一样的安装过程就可以了。不过需要注意的是,Swoole 会和一些扩展产生冲突,比如说 XDebug、phptrace、aop、molten、xhprof、phalcon(协程无法运行在 phalcon 框架中)。大家一定会担心了,不能使用 XDebug ,我们的调试会很麻烦呀!没关系,Swoole 也有它自己推荐的调试工具,有兴趣的小伙伴可以自己查阅下相关资料。

2023-09-25 09:52:53 53 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除