函数:ZMQSocket::bind()
适用版本:ZMQ extension 1.0.0 或更高版本
用法: ZMQSocket::bind(string $dsn, bool $force = false): bool
该函数用于将 ZeroMQ 套接字绑定到指定的传输地址。绑定后,套接字将开始监听该地址以接收传入的消息。
参数:
- $dsn:要绑定的传输地址,可以是以下格式之一:
- tcp://:port:绑定到指定的 TCP 端口上, 表示绑定到所有可用的 IP 地址。
- ipc:///path/to/socket:绑定到指定的 IPC(进程间通信)路径上。
- inproc://socket:绑定到指定的进程内通信套接字。
- $force(可选):指定是否强制绑定套接字,即使该地址已被其他套接字占用。默认为 false,表示如果地址已被占用,将引发 ZMQBindException 异常。
返回值:
- 成功绑定返回 true,失败返回 false。
示例:
$context = new ZMQContext();
$socket = $context->getSocket(ZMQ::SOCKET_REQ);
// 绑定到 TCP 端口
$socket->bind("tcp://*:5555");
// 绑定到 IPC 路径
$socket->bind("ipc:///tmp/socket");
// 绑定到进程内通信套接字
$socket->bind("inproc://socket");
注意事项:
- 如果要绑定到 TCP 端口,确保端口未被其他进程占用。
- 如果要绑定到 IPC 路径,确保路径存在且具有正确的权限。
- 如果要绑定到进程内通信套接字,确保套接字唯一且未被其他套接字占用。