Swoole网络socket开发框架,如何编写服务器端

 

 

Swoole提供了一套网络类,可以方便地开发出一个网络程序。Swoole提供了底层TCP和UDP支持,用户无需关心底层socket,只需实现一个协议Protocol,就可以实现一个网络服务器端。现在WebGame如此盛行,很多游戏开发者都选择PHP,但是由于没有成型的网络开发框架,只能依赖Apache,Nginx等Web服务器,只能基于HTTP协议。

现在有了Swoole网络框架,PHP程序员们也可以很轻松写出高性能的网络服务器。Swoole提供了BlockTCP,SelectTCP,EventTCP3种TCP Server驱动和BlockUDP,SelectUDP,EventUDP3种UDP Server驱动。

BlockTCP:每次只能处理1个请求,完成后关闭client socket才可以accept新的客户端连接。HTTP协议可以使用此驱动。此驱动可以用在Windows系统下

SelectTCP:使用select实现多路复用,可同时维持多个客户端连接,因为select也是轮询的,并发如果很高效率会比较低。此驱动可以用在Windows系统下

EventTCP:使用基于libevent扩展的事件模型,使用epoll系统通知的方式,在高并发的情况下,效率也非常高。此驱动只能用于Linux系统下

使用Swoole开发服务器端,只需要编写Potocol类即可,Driver可以任意替换。首先生成一个驱动类,然后通过setProtocol方法,设置使用哪种协议。在协议中,编写回调函数的处理方法。在Protocol,通过条调用$this->server->send,$this->server->sendAll,$this->server->close实现网络操作。

 另外Swoole也提供了spawn函数,在Linux环境下,可以Fork出多个进程。可实现并行,充分利用多核,单进程阻塞不影响服务。因PHP没有实现多线程,目前没有提供多线程驱动。

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值