fd ist der Dateideskriptor der TCP-Verbindung, der die eindeutige Kennung des Clients in swoole_server darstellt.
fd wird wiederverwendet. Wenn die Verbindung geschlossen wird, wird fd von der neu eingegebenen Verbindung 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 objektorientierten Methode besteht darin, dass sie besser lesbar ist und die Verbindungsoperation in Methoden gekapselt werden kann. Zum Beispiel:
$connection->send($data); $connection->close();
Die chinesische PHP-Website bietet eine große Anzahl kostenloser Swoole-Einführungs-Tutorials, die jeder gerne lernen kann!
Das obige ist der detaillierte Inhalt vonWas bedeutet swoole fd?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!