Maison > cadre php > Swoole > Qu'est-ce que swoole utilise pour sauvegarder les fd ?

Qu'est-ce que swoole utilise pour sauvegarder les fd ?

(*-*)浩
Libérer: 2019-12-09 11:21:13
original
2902 Les gens l'ont consulté

Qu'est-ce que swoole utilise pour sauvegarder les fd ?

from_id est de quel thread de réacteur il provient

fd est le descripteur de fichier de la connexion TCP, qui est l'identifiant unique du client dans swoole_server Apprentissage recommandé : tutoriel vidéo swoole )

fd est réutilisé Lorsque la connexion est fermée, fd sera réutilisé par la nouvelle connexion entrante

La connexion TCP fd. en cours de maintenance Ne sera pas réutilisé

L'appel de la fonction swoole_server->send/swoole_server->close nécessite de transmettre 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.

Les versions 1.6.0 et supérieures ne nécessitent plus le paramètre from_id. swoole lui-même fournit ConnectionList pour interroger tous les fds actuels et from_id correspondant

Pour les versions 1.7.10 et supérieures, fd est le descripteur de fichier n'est plus requis. 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); 
}
Copier après la connexion

$ fd Pourquoi utiliser un entier

$fd Utiliser 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/. Processus de tâche. Si vous utilisez Object, vous devez alors 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();
Copier après la connexion

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal