Nach der Installation der Socket-Erweiterung von PHP können Sie die verschiedenen Socket-Funktionen verwenden, die mit PHP geliefert werden. Lernen Sie zunächst die relevanten Parameter und Verwendungsmethoden jeder Funktion kennen. Ich weiß beispielsweise bereits, dass ein Server über WebSocket verbunden werden kann . Der Domänenname ist 192.168.15.192 und die Portnummer ist 9001. Sie können die Schritte des Aufrufs verwenden, um die Socket-Verbindungsmethode zu verstehen.
1. ## Beim Tätigen eines Anrufs müssen zunächst beide Parteien über Socket-Nummern verfügen, bei denen es sich um Domänennamen handelt.
$socket_create = socket_create ($domain, $type , $protocal); ## Resource type
$error = socket_last_error($socket_create); ## Wenn die Verbindung erfolgreich ist, ist sie int(0). , der Fehlercode wird zurückgegeben
$strerror = socket_strerror($error) ## Lesen Sie die Textbeschreibung des Fehlers
## Setzen Sie den offiziellen Link zu dieser Funktion http://php .net/manual/en/function.socket-create.php
## Der erste Parameter $domain ist das Protokoll, das vom angegebenen Socket verwendet werden soll
Es gibt drei Optionen, die ich verwende das erste AF_INET:
AF_INET basiert auf dem IPv4-Internetprotokoll
AF_INET6 IPv6-Internetprotokoll
AF_UNIX lokales Kommunikationsprotokoll
## Der zweite Parameter $type ist die Verbindungsmethode
Ja Wählen Sie diese fünf, ich verwende den ersten SOCK_STREAM:
SOCK_STREAM stellt ein sequentielles Socket-TCP-Protokoll basierend auf diesem Typ bereit
SOCK_DGRAM unterstützt Datenpaket UDP Protokoll basierend auf diesem Typ
SOCK_SEQPACKET Bietet eine geordnete Übertragung für Datagramme mit fester Maximallänge. Liest das gesamte Paket bei jeder Anruf-Ping-Anfrage)
SOCK_RDM garantiert keine zuverlässige Sortierung
#. # Der dritte Parameter $protocal dient zum Festlegen der angegebenen spezifischen Protokolldomäne. Sie können getprotobyname($name) aufrufen, um den Wert abzurufen. $name ist eine Zeichenfolge. Es kann „ip“, „icmp“, „ggp“, „tcp“ sein ", "egp", "pup", "udp", "hmp", "xns-idp", "rdp", "rvd", ich verwende Das eine ist getprotobyname("tcp"), das 6 zurückgibt, was entspricht zur Konstante SOL_TCP.
Es sollte nur 2 Typen des dritten Parameters geben. Ich weiß nicht, warum es so viele gibt:
SOL_TCP ## Ich habe diese Konstante zum Testen verwendet erfolgreich
SOL_UDP ## Wenn Sie es noch nicht ausprobiert haben, bitte Google...
Andere Konstanten finden Sie im offiziellen Handbuch zur Konstantendefinition http:// php.net/manual/en/sockets.constants.php
2. Einen Anruf an die andere Partei tätigen; entspricht dem Ausstellen einer Verbindungsanfrage
$result = socket_connect($ socket_create, " 192.168.15.192", "9001");
## Der erste der drei Parameter ist die Ressource von socket_create, der zweite ist der Domänenname und der dritte ist die Portnummer
3. Informationen lesen
## socket_read hat mindestens 2 Parameterwhile($out = socket_read($create_socket, $length)){ var_dump($out); }
Der erste Parameter ist die Ressource create_socket
Der zweite Parameter schreibt die Daten, die Sie empfangen möchten Die Längeneinheit ist Bytes
Der dritte Parameter ist der Typ und kann weggelassen werden. Der Standardwert ist die PHP_BINARY_READ-Konstante
Das Obige ist die Methode zum Verbinden von Websockets in PHP.
Aber im tatsächlichen Nutzungsprozess kann die Browserseite die Informationen oft nicht normal lesen. Vielleicht können Sie swoole verwenden, um die Verbindung zu verbessern
Das obige ist der detaillierte Inhalt vonVerbindungseinstellungen für WebSocket in PHP auf MAC. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!