fd ist der Dateideskriptor der TCP-Verbindung, der die eindeutige Kennung des Clients in swoole_server ist.
fd wird wiederverwendet , wenn die Verbindung geschlossen wird, wird der fd von der neuen eingehenden Verbindung wiederverwendet (Empfohlenes Lernen: Swoole-Video-Tutorial )
Der aufrechterhaltene TCP-Verbindungs-fd wird nicht wiederverwendet
Der Aufruf der Funktion swoole_server->send/swoole_server->close erfordert die Übergabe des Parameters $fd, um korrekt verarbeitet zu werden.
Wenn Sie in Ihrem Unternehmen Broadcasts senden müssen, müssen Sie apc/redis/memcache/swoole_table verwenden, um den Wert von fd zu speichern.
In Version 1.7.10 oder höher ist fd kein Dateideskriptor mehr. fd ist eine automatisch ansteigende Zahl im Bereich von 1 bis 16 Millionen
Nachdem fd 16 Millionen überschreitet, wird es automatisch ab 1 wiederverwendet
function my_onReceive($serv, $fd, $from_id, $data) { //向Connection发送数据 $serv->send($fd, 'Swoole: '.$data); //关闭Connection $serv->close($fd); }
Warum verwendet $fd die Umformung?
$fd verwendet eine Ganzzahl anstelle eines Objekts. Der Hauptgrund dafür ist, dass swoole ein Multiprozessmodell ist. Möglicherweise müssen Sie jederzeit im Worker-Prozess/Task-Prozess auf eine Client-Verbindung zugreifen. Wenn Sie ein Objekt verwenden, müssen Sie es serialisieren/unserialisieren. Fügt zusätzlichen Leistungsaufwand hinzu. Wenn $fd eine Ganzzahl ist, kann sie zur direkten Speicherung und Übertragung verwendet werden.
In der PHP-Schicht können Client-Verbindungen auch in Objekte gekapselt werden. Der Vorteil der Objektorientierung besteht darin, dass sie besser lesbar ist und der Verbindungsvorgang in Methoden gekapselt werden kann. Wie zum Beispiel
$connection->send($data); $connection->close();
Das obige ist der detaillierte Inhalt vonwas ist swoole fd. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!