swoole如何保存fd

  介绍

这篇文章给大家分享的是有关swoole如何保存fd的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

from_id是来自于哪个反应堆线程

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

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

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

调用swoole_server→发送/swoole_server→关闭函数需要传入美元fd参数才能被正确的处理。

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

1.6.0以上版本不再需要from_id参数,swoole本身提供了ConnectionList可以查询到当前所有的fd和对应from_id

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

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

function  my_onReceive(算是美元,fd美元,from_id美元,美元数据),,{   ,,,//向连接发送数据   ,,,服务→美元发送(fd美元,& # 39;Swoole:, & # 39; $ data),,   ,,,//关闭连接   ,,,美元服务→关闭(fd);,   }

<>强美元fd为什么使用整形

fd使美元用整形而不是使用对象,主要原因是swoole是多进程的模型,在工人进程/任务进程中随时可能要访问某一个客户端连接,如果使用对象,那就需要进行序列化/非系列化。增加了额外的性能开销。美元fd如果是整数那就可以直接存储传输被使用。

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

连接→美元发送(元数据);   美元连接→close ();

感谢各位的阅读!关于“swoole如何保存fd”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

swoole如何保存fd