\SwooleClient

swoole_client

Author: EagleWu eaglewudi@gmail.com Date: 2016/02/17

Summary

Methods
Properties
Constants
__construct()
connect()
send()
sendto()
recv()
close()
on()
isConnected()
getsockname()
getpeername()
set()
sleep()
wakeup()
sendfile()
$errCode
$sock
No constants found
No protected methods found
No protected properties found
N/A
No private methods found
No private properties found
N/A

Properties

$errCode

$errCode : 

函数执行错误会设置该变量

Type

$sock

$sock : integer

socket的文件描述符

PHP代码中可以使用: $sock = fopen("php://fd/".$swoole_client->sock);

将swoole_client的socket转换成一个stream socket。可以调用fread/fwrite/fclose等函数进程操作。 swoole_server中的$fd不能用此方法转换,因为$fd只是一个数字,$fd文件描述符属于主进程 $swoole_client->sock可以转换成int作为数组的key.

Type

integer

Methods

__construct()

__construct(integer  $sock_type, integer  $sync_type = SWOOLE_SOCK_SYNC, string  $connectionKey = '') 

swoole_client构造函数

Parameters

integer $sock_type

指定socket的类型,支持TCP/UDP、TCP6/UDP64种

integer $sync_type

SWOOLE_SOCK_SYNC/SWOOLE_SOCK_ASYNC 同步/异步

string $connectionKey

链接的编号,用于长连接复用

connect()

connect(string  $host, integer  $port, float  $timeout = 0.1, integer  $flag) : boolean

连接到远程服务器

Parameters

string $host

是远程服务器的地址 v1.6.10+ 支持填写域名 Swoole会自动进行DNS查询

integer $port

是远程服务器端口

float $timeout

是网络IO的超时,单位是s,支持浮点数。默认为0.1s,即100ms

integer $flag

参数在UDP类型时表示是否启用udp_connect。设定此选项后将绑定$host与$port,此UDP将会丢弃非指定host/port的数据包。 在send/recv前必须使用swoole_client_select来检测是否完成了连接

Returns

boolean

send()

send(string  $data) : boolean

向远程服务器发送数据

参数为字符串,支持二进制数据。 成功发送返回的已发数据长度 失败返回false,并设置$swoole_client->errCode

Parameters

string $data

Returns

boolean

sendto()

sendto(  $ip,   $port,   $data) 

向任意IP:PORT的服务器发送数据包,仅支持UDP/UDP6的client

Parameters

$ip
$port
$data

recv()

recv(integer  $size = 65535, boolean  $waitall = false) : string

从服务器端接收数据

如果设定了$waitall就必须设定准确的$size,否则会一直等待,直到接收的数据长度达到$size 如果设置了错误的$size,会导致recv超时,返回 false 调用成功返回结果字符串,失败返回 false,并设置$swoole_client->errCode属性

Parameters

integer $size

接收数据的最大长度

boolean $waitall

是否等待所有数据到达后返回

Returns

string

close()

close() : boolean

关闭远程连接

swoole_client对象在析构时会自动close

Returns

boolean

on()

on(  $event_name, callable  $callback_function) : boolean

注册异步事件回调函数

Parameters

$event_name
callable $callback_function

Returns

boolean

isConnected()

isConnected() : boolean

判断是否连接到服务器

Returns

boolean

getsockname()

getsockname() : boolean

获取客户端socket的host:port信息

Returns

boolean —

| array

getpeername()

getpeername() : boolean

获取远端socket的host:port信息,仅用于UDP/UDP6协议 UDP发送数据到服务器后,可能会由其他的Server进行回复

Returns

boolean —

| array

set()

set(array  $setting) 

设置客户端参数

Parameters

array $setting

sleep()

sleep() 

睡眠,停止接收数据

wakeup()

wakeup() 

唤醒,开始接收数据

sendfile()

sendfile(  $file) : boolean|mixed

Parameters

$file

string file with path

Returns

boolean|mixed —

false if file not exist