Heim  >  Artikel  >  Backend-Entwicklung  >  Verbindungseinstellungen für WebSocket in PHP auf MAC

Verbindungseinstellungen für WebSocket in PHP auf MAC

小云云
小云云Original
2018-03-28 11:44:251876Durchsuche

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 Parameter
while($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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn