setServerSocketAddress ( string $address = '' ) : object

参数

@param    string    $address    完整的 socket 地址

$address 的格式为 <通信协议>://<监听地址>

<通信协议> 可以为以下格式或者任何自定义协议:

tcp: 例如: tcp://0.0.0.0:8888

udp: 例如: udp://0.0.0.0:8888

unix: 例如: unix:///tmp/my_file (需要 workerman >= 3.2.7)

text: 例如: text://0.0.0.0:8888

frame: 例如: frame://0.0.0.0:8888

websocket:例如: websocket://0.0.0.0:8888

<监听地址> 可以为以下格式:

如果是unix套接字,地址为本地一个磁盘路径

非unix套接字,地址格式为 <本机ip>:<端口号>

<本机ip>可以为0.0.0.0表示监听本机所有网卡,包括内网ip和外网ip及本地回环127.0.0.1

<本机ip>如果以为127.0.0.1表示监听本地回环,只能本机访问,外部无法访问

<本机ip>如果为内网ip,类似192.168.xx.xx,表示只监听内网ip,则外网用户无法访问

<本机ip>设置的值不属于本机ip则无法执行监听,并且提示Cannot assign requested address错误

[!WARNING|style:callout|label:关于端口号|iconVisibility:default|labelVisibility:default|className:block-warning] 1、端口号不能大于65535,端口号如果小于1024则需要root权限才能监听;
2、端口必须是本机未被占用的端口,否则无法监听,并且提示 Address already in use 错误

说明

设置监听 socket

举栗

$this->worker = new Producer();
$this->worker->setServerSocketAddress('websocket://0.0.0.0:8888');

results matching ""

    No results matching ""