swoolefd指的是什么-创新互联

小编给大家分享一下swoole fd指的是什么,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:申请域名雅安服务器托管、营销软件、网站建设、钦州网站维护、网站推广。

fd是tcp连接的文件描述符,在swoole_server中是客户端的标识符

fd是复用的,当连接关闭后fd会被新进入的连接复用            

正在维持的TCP连接fd不会被复用

调用swoole_server->send/swoole_server->close函数需要传入$fd参数才能被正确的处理。

如果业务中需要发送广播,需要用apc/redis/memcache/swoole_table将fd的值保存起来。

1.7.10以上版本,fd不再是文件描述符。fd是一个自增数字,范围是 1 ~ 1600万

fd超过1600万后会自动从1开始进行复用

function my_onReceive($serv, $fd, $from_id, $data)  {    
      //向Connection发送数据
    $serv->send($fd, 'Swoole: '.$data); 
    //关闭Connection
    $serv->close($fd); 
}

$fd为什么使用整形

$fd 使用整形而不是使用对象,主要原因是swoole是多进程的模型,在Worker进程/Task进程中随时可能要访问某一个客户端连接,如果使用对象,那就需要进行Serialize/Unserialize。增加了额外的性能开销。$fd 如果是整数那就可以直接存储传输被使用。

在PHP层可以也客户端连接可以封装成对象。面向对象的好处是可读性更好,对连接的操作可以封装到方法中。如

$connection->send($data);
$connection->close();

以上是“swoole fd指的是什么”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注创新互联行业资讯频道!


本文名称:swoolefd指的是什么-创新互联
文章转载:http://ybzwz.com/article/csgegd.html