Maison  >  Article  >  cadre php  >  qu'est-ce que le swoole fd

qu'est-ce que le swoole fd

(*-*)浩
(*-*)浩original
2019-12-06 09:16:033696parcourir

qu'est-ce que le swoole fd

fd est le descripteur de fichier de la connexion TCP, qui est l'identifiant unique du client dans swoole_server

fd est réutilisé , lorsque la connexion est fermée, le fd sera réutilisé par la nouvelle connexion entrante (Apprentissage recommandé : tutoriel vidéo swoole )

Le fd de connexion TCP en cours de maintenance ne sera pas réutilisé

L'appel de la fonction swoole_server->send/swoole_server->close nécessite de passer le paramètre $fd pour être traité correctement.

Si vous devez envoyer des diffusions dans votre entreprise, vous devez utiliser apc/redis/memcache/swoole_table pour enregistrer la valeur de fd.

Dans la version 1.7.10 ou supérieure, fd n'est plus un descripteur de fichier. fd est un nombre auto-croissant, allant de 1 à 16 millions

Une fois que fd dépasse 16 millions, il sera automatiquement réutilisé à partir de 1

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

Pourquoi $fd utilise-t-il le remodelage

$fd utilise un entier au lieu d'un objet. La raison principale est que swoole est un modèle multi-processus. Vous devrez peut-être accéder à une connexion client à tout moment dans le processus Worker/Tâche. Si vous utilisez un objet, vous devez sérialiser/désérialiser. Ajoute une surcharge de performances supplémentaire. Si $fd est un nombre entier, il peut être utilisé pour le stockage et le transfert direct.

Dans la couche PHP, les connexions clients peuvent également être encapsulées dans des objets. L'avantage de l'orientation objet est qu'elle est plus lisible et que l'opération de connexion peut être encapsulée dans des méthodes. Tel que

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

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn