异步通信(异步通信概念)

/ 0评 / 0

异步通信(异步通信概念)

在互联网行业扩张的12-16年间,PHP语言因其易用、开发周期短的优势,深受中小企业的喜爱。边肖也非常幸运地在2009年底进入这个行业,并在自己的企业中分得一杯羹。但是PHP有其固有的局限性,导致很多客户的需求得不到满足。

异步通信(异步通信概念)

众所周知,PHP现有的应用方式都是基于http的,对于需要快速实时响应的场景来说是比较弱的。比如网络游戏或聊天工具等推送服务,一般需要与用户长期坚持一个TCP连接,以方便实时响应和推送信息。在Swoole出现之前,这个问题一直是PHP无法逾越的难题,甚至很多PHP开发者都转向了java和Python。让我这个还守着PHP阵营的小伙伴很孤独。

接下来说说Swoole,看看它给PHPER技术资源网带来了什么解决方案。

Swoole是一个用于生产环境的PHP异步网络通信引擎,它使PHP开发人员能够编写高性能的异步和并发TCP、UDP、UnixSocket、Http和WebSocket服务。Swole可广泛应用于互联网、移动通信、企业软件、云计算、网络游戏、物联网(IOT)、车联网、智能家居等领域。使用PHP+Swoole作为网络通信框架。

Swole虽然是一个scale PHP扩展,但是和普通的扩展有本质的区别。普通扩展只提供一个函数库,而Swole扩展运行后会接收PHP的掌握,进入事件循环。当IO事件产生时,底层会主动回调指定的PHP函数。

计算机网络服务器

扩展TCP/UPD服务器框架,支持多线程、EventLoop、事件驱动、异步、工作进程组、任务异步义务、毫秒定时器、SSL/TLS隧道加密。

HTTPServer是Server的一个子类,内置对HTTP的支持;

WebSocketServer是HTTPServer的子类,内置了对WebSocket的支持。

RedisServer是Server的一个子类,受Redis server协议支持。

客户

TCP/UDP/UnixSocket客户端支持IPV4/IPV6、SSL和TLS隧道加密、SLL双向证书、同步并发调用和异步事件驱动编程。

协同技术资源网

Swoole从2.0中内置协议(协程)的能力开始,提供了具有协同能力的IO接口。

协作者可以理解为纯用户态线程,通过协作而不是抢占来切换。与进程或线程相比,协同学的所有操作都可以在用户模式下完成,创建和切换的成本更低。Swoole可以认为每个请求都会创建一个对应的协同过程,并根据IO状态合理调度协同过程。

过程

流程管理模块,可以方便地创建子流程、流程间通信和流程管理。

桌子

基于共享内存和旋转锁的超高性能内存表。彻底解决线程和进程间的数据共享、锁定同步等问题。

事件

事件API允许用户直接操作底层时间循环,并在事件循环中添加Socket、Stream、pipeline等Linux文件。

支持的版本:PHP 5.3以上

支持的数据库:MySQL、DB2、Oracle、MS SQL SERVER、ODBC等主流数据库。

支持的运行方法:Web、Cli命令脚本、PHP-GTK GUI

那么,作为一名PHP程序员,你会继续坚守自己的阵营吗?

欢迎在评论区留言,有任何错误或失误欢迎填写。