Heim >PHP-Framework >Swoole >Was verwendet Swoole, um FD zu speichern?
from_id ist der Reaktor-Thread, von dem es stammt
fd ist der Dateideskriptor der TCP-Verbindung, der die eindeutige Kennung des Clients in swoole_server ist Empfohlenes Lernen: Swoole-Video-Tutorial )
fd wird wiederverwendet. Wenn die Verbindung geschlossen wird, wird fd von der neuen eingehenden Verbindung wiederverwendet
Die TCP-Verbindung fd wird beibehalten. 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.
Versionen 1.6.0 und höher erfordern nicht mehr den Parameter from_id. swoole selbst stellt ConnectionList zur Abfrage aller aktuellen fds und der entsprechenden from_id bereit
Für Versionen 1.7.10 und höher ist fd Der Dateideskriptor ist nicht mehr erforderlich. fd ist eine automatisch ansteigende Zahl im Bereich von 1 bis 16 Millionen
Nachdem fd 16 Millionen überschreitet, wird es automatisch ab 1
function my_onReceive($serv, $fd, $from_id, $data) { //向Connection发送数据 $serv->send($fd, 'Swoole: '.$data); //关闭Connection $serv->close($fd); }
$ wiederverwendet fd Warum Ganzzahl
$fd Verwenden Sie Ganzzahl anstelle von Objekt? Der Hauptgrund ist, dass Swoole ein Multiprozessmodell ist. Möglicherweise müssen Sie jederzeit im Worker-Prozess auf eine Clientverbindung zugreifen. Aufgabenprozess. Wenn Sie Object verwenden, müssen Sie 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 verwendet Swoole, um FD zu speichern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!