Maison > développement back-end > tutoriel php > Paramètres de connexion pour websocket en php sur MAC

Paramètres de connexion pour websocket en php sur MAC

小云云
Libérer: 2023-03-22 14:06:02
original
1958 Les gens l'ont consulté

Après avoir installé l'extension socket de php, vous pouvez utiliser les différentes fonctions socket fournies avec php. Tout d'abord, découvrez les paramètres pertinents et les méthodes d'utilisation de chaque fonction. Par exemple, je sais déjà qu'un serveur peut être connecté via websocket. . Le nom de domaine est 192.168.15.192 et le numéro de port est 9001. Vous pouvez utiliser les étapes d'appel pour comprendre la méthode de connexion par socket.

1. ## Tout d'abord, lors d'un appel, les deux parties doivent avoir un téléphone ; socket nécessite que les deux parties aient des numéros de socket, qui sont des noms de domaine

$socket_create = socket_create ; ($domain, $type , $protocal); ## Type de ressource

$error = socket_last_error($socket_create); ## Si la connexion réussit, ce sera int(0). , le code d'erreur sera renvoyé

$strerror = socket_strerror($error) ## Lire la description textuelle de l'erreur

## Mettre le lien officiel vers cette fonction http://php .net/manual/en/function.socket-create.php

## Le premier paramètre $domain est le protocole à utiliser par le socket spécifié

Il y a trois options, j'utilise le premier AF_INET :

AF_INET est basé sur le protocole Internet IPv4

AF_INET6 Protocole basé sur Internet IPv6

Protocole de communication local AF_UNIX

## Le deuxième paramètre $type est la méthode de connexion

Oui Choisissez ces cinq éléments, j'utilise le premier SOCK_STREAM :

SOCK_STREAM fournit un protocole TCP de socket séquentiel basé sur ce type

SOCK_DGRAM prend en charge les paquets de données UDP protocole basé sur ce type

SOCK_SEQPACKET Fournit une transmission ordonnée pour les datagrammes de longueur maximale fixe Lit l'intégralité du paquet à chaque demande de ping d'appel)

SOCK_RDM ne garantit pas un tri fiable

#. # Le troisième paramètre $protocal sert à définir le domaine de protocole spécifique spécifié ; vous pouvez appeler getprotobyname($name) pour récupérer la valeur, $name est une chaîne. Cela peut être "ip", "icmp", "ggp", "tcp ", "egp", "pup", "udp", "hmp", "xns-idp", "rdp", "rvd", j'utilise Celui-ci est getprotobyname("tcp"), qui renvoie 6, ce qui correspond à la constante SOL_TCP.

Il ne devrait y avoir que 2 types du troisième paramètre. Je ne sais pas pourquoi il y a autant de $name :

SOL_TCP ## J'ai utilisé cette constante pour tester. avec succès


SOL_UDP ## Si vous ne l'avez pas essayé, veuillez Google...


D'autres constantes peuvent se référer au manuel officiel de définition des constantes http:// php.net/manual/en/sockets.constants.php

2. Composez un appel vers l'autre partie ; équivalent à émettre une demande de connexion

$result = socket_connect($ socket_create, " 192.168.15.192", "9001");

## Le premier des trois paramètres est la ressource de socket_create, le deuxième est le nom de domaine et le troisième est le numéro de port

3. Lire les informations

## socket_read a au moins 2 paramètres
while($out = socket_read($create_socket, $length)){
var_dump($out);
}
Copier après la connexion

Le premier paramètre est la ressource create_socket

Le deuxième paramètre écrit les données que vous souhaitez recevoir L'unité de longueur est en octets

Le troisième paramètre est le type et peut être omis. La valeur par défaut est la constante PHP_BINARY_READ

Ce qui précède est la méthode de connexion du websocket en PHP.

Mais dans le processus d'utilisation réel, la page du navigateur ne peut souvent pas lire les informations normalement. Vous pouvez peut-être utiliser swoole pour améliorer la connexion

.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal