学习swoole的心得

原文地址:学习swoole的心得php


什么是swoole
swoole是PHP的异步、并行、高性能网络通讯引擎,使用纯C语言编写,提供了PHP语言的异步多线程服务器,异步TCP/UDP网络客户端,异步MySQL,异步Redis,数据库链接池,AsyncTask,消息队列,毫秒定时器,异步文件读写,异步DNS查询。 Swoole内置了Http/WebSocket服务器端/客户端、Http2.0服务器端。
Swoole能够普遍应用于互联网、移动通讯、企业软件、云计算、网络游戏、物联网(IOT)、车联网、智能家居等领域。 使用PHP+Swoole做为网络通讯框架,可使企业IT研发团队的效率大大提高,更加专一于开发创新产品。随着咱们css

咱们为何用swoolelinux

用户打开了咱们的网站。他要作的就是勾选须要发邮件的代理商列表,而后把结算邮件发出去。
假如咱们须要发1封邮件,咱们写个函数执行便可。考虑到网络可能会稍微有点延迟,可是是能够接受的,用户会乖乖等你的网页发完邮件了再关闭网页。
假如咱们要发布10封邮件,用一个for循环,循环10遍执行发邮件操做。这时候,也许10倍的网络延迟会让用户稍微有点不耐烦,但勉强能够等吧。
假如要发100封邮件,for循环100遍,用户直接揭竿而起,什么破网站!
但实际上,咱们极可能有超过1万的邮件。怎么处理这个延迟的问题?
答案就是用异步。把“发邮件”这个操做封装,而后后台异步地执行1万遍。这样的话,用户提交网页后,他所等待的时间只是“把发邮件任务请求推送进队列里”的时间。而咱们的后台服务将在用户看不见的地方跑。而swoole就为咱们实现了异步队列处理及并发等问题。nginx

如何使用数据库

一、安装swoole, 有两种安装方式:浏览器

一种是先下载安装包,传到服务器(记住必定是linux服务器)上,而后解压,而后先cd到服务器的安装包的位置,而后执行系统就会自动安装,若是提示phpize不存在的话,就须要安装一下phpize.bash

phpize
./configure
make 
sudo make install

另外一种方式直接执行服务器

pecl install swoole

用这种方式能够自动下载安装。
我采起的是第二种方式噢。
安装完成,须要更改php.ini的配置,将swoole

extension=swoole.so

放在这个配置中,而后重启nginx。
完成之后执行网络

php -m

查看是否有swoole。有swoole说明安装成功。
2.启动server
以前看文档我一直觉得swoole是个框架,须要咱们配置而后设置端口访问,其实不是,swoole是php的扩展,咱们只须要在咱们的项目中增长server.php,或者其余的名字,里面的代码简单点能够按照文档上来写,以下:

这里就建立了一个TCP服务器,监听本机9501端口,你也能够改为其余的端口号,只要你的服务器能够支持这个端口。
服务器端的server必须运行起来咱们才能使用swoole,异步执行。如何运行呢?咱们cd到你的项目下server.php 所在的文件夹,而后执行

php server.php

如何测试成功呢?咱们能够关掉这个客户端,从新打开链接服务器,而后执行

telnet 127.0.0.1 9501
hello
Server: hello

若是是这样子说明成功了。
须要注意的是咱们若是修改了server.php,必须断掉以前,而后从新打开。
我这边写了一个脚原本断掉以前的,起名stop.sh

#! /bin/bashps -eaf |grep "server.php" | grep -v "grep"| awk '{print $2}'|xargs kill -9

这须要放在和server.php同一个文件夹。
咱们须要cd到这个文件夹,执行sh stop.sh
三、client
这个是能够在浏览器上执行的,咱们见一个client.php,代码以下:

建立一个TCP的同步客户端,此客户端能够用于链接到咱们server服务器。向服务器端发送一个hello world字符串,服务器会返回一个 Server: hello world字符串。以上是swoole简单的安装和连同

相关文章
相关标签/搜索