Home >Backend Development >PHP Tutorial >Connection settings for websocket in php on MAC

Connection settings for websocket in php on MAC

小云云
小云云Original
2018-03-28 11:44:251954browse

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!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn