After installing the socket extension of php, you can use the various socket functions that come with php. First, learn the relevant parameters and usage methods of each function. For example, I already know that a server can be connected through websocket. The domain name is 192.168.15.192 and the port number is 9001. You can use the steps of making a phone call to understand the socket connection method.
1. ## First of all, when making a call, both parties must have telephones; socket requires both parties to have socket numbers, which are domain names;
$socket_create = socket_create($domain, $type , $protocal); ## Resource type
$error = socket_last_error($socket_create); ## If the connection is successful, it will be int(0). If the connection fails, an error code will be returned.
$strerror = socket_strerror($error) ## Read the text description of the error
## Put the official link to this function http://php.net/manual/en/function.socket-create.php
## The first parameter $domain is the protocol to be used by the specified socket.
There are three options. I use the first one, AF_INET:
AF_INET is based on IPv4 Internet Protocol
AF_INET6 IPv6 Internet-based protocol
AF_UNIX Local Communication Protocol
## The second parameter $type is the connection method
Yes Choose these five, I use the first SOCK_STREAM:
SOCK_STREAM provides sequential socket TCP protocol based on this type
SOCK_DGRAM supports data packet UDP protocol based on this type
SOCK_SEQPACKET Provides ordered transmission for fixed maximum length datagrams. Reads the entire packet on each call.
SOCK_RAW Provides access to raw network protocols and allows the user to manually build any protocol. Commonly used to perform ICMP requests (such as terminals) ping request)
SOCK_RDM does not guarantee reliable sorting
## The third parameter $protocal is to set the specified specific protocol domain; you can call getprotobyname($name) to retrieve the value, $name is a string It can be "ip", "icmp", "ggp", "tcp", "egp", "pup", "udp", "hmp", "xns-idp", "rdp", "rvd", I use The one is getprotobyname("tcp"), which returns 6, which corresponds to the constant SOL_TCP.
There should be only 2 types of the third parameter. I don’t know why there are so many $name:
SOL_TCP ## I used this constant to test successfully
SOL_UDP ## If you haven’t tried it, please Google it yourself...
For other constants, please refer to the official one Constant Definition Manual http://php.net/manual/en/sockets.constants.php
2. Dial a call to the other party; equivalent to issuing a connection request
$result = socket_connect($ socket_create, "192.168.15.192", "9001");
## Three parameters: the first is the resource of socket_create, the second is the domain name, and the third is the port number
3. Read information
while($out = socket_read($create_socket, $length)){ var_dump($out); }
## socket_read has at least 2 parameters
The first parameter is the create_socket resource
The second parameter writes the data length unit you want to receive It is a byte.
The third parameter is the type and can be omitted. The default is the PHP_BINARY_READ constant.
The above is the method of connecting websocket with PHP.
But in the actual use process, Browser pages often cannot read information normally. Maybe you can use swoole to improve the connection.
The above is the detailed content of Connection settings for websocket in php on MAC. For more information, please follow other related articles on the PHP Chinese website!