函数名称:ZMQDevice::run()
适用版本:ZMQ extension >= 1.0.0
函数描述:ZMQDevice::run() 方法启动一个 ZMQ 设备,用于连接两个 ZMQ 套接字。它会在两个套接字之间建立一个消息代理,将消息从一个套接字转发到另一个套接字。
用法:
ZMQDevice::run(ZMQSocket $frontend, ZMQSocket $backend, ?ZMQSocket $capture = null)
参数:
$frontend
:ZMQSocket 类型的前端套接字,用于接收来自客户端的消息。$backend
:ZMQSocket 类型的后端套接字,用于将消息发送给服务端。$capture
(可选):ZMQSocket 类型的捕获套接字,用于捕获代理收到的所有消息。
返回值:无返回值。
示例:
// 创建一个上游套接字
$frontend = new ZMQSocket(new ZMQContext(), ZMQ::SOCKET_PULL);
$frontend->bind("tcp://*:5555");
// 创建一个下游套接字
$backend = new ZMQSocket(new ZMQContext(), ZMQ::SOCKET_PUSH);
$backend->bind("tcp://*:5556");
// 创建一个捕获套接字,用于记录代理收到的消息
$capture = new ZMQSocket(new ZMQContext(), ZMQ::SOCKET_PUB);
$capture->bind("tcp://*:5557");
// 启动代理
ZMQDevice::run($frontend, $backend, $capture);
上述示例中,我们创建了一个消息代理,将来自客户端的消息通过上游套接字 $frontend
转发给服务端,然后服务端通过下游套接字 $backend
接收到消息。同时,我们还创建了一个捕获套接字 $capture
,用于记录代理收到的所有消息。
请确保在运行示例之前,已经正确安装并启用了 ZMQ 扩展。