php如何与其它程序交互,与第三方程序交互

本文探讨了如何通过YAR与YAR Server协作,以及利用ZMQ实现ZMQ Replication Socket进行高效通信。展示了如何使用Cross Delegate的get()方法加载第三方API,并在服务中处理来自客户端的请求。
摘要由CSDN通过智能技术生成

与第三方程序交互

使用CP的Delegate::get()可以很容易的与第三方程序进行交互

Yar

与YAR协作

require '../../crossboot.php';

$conf = array(

'server' => array(

'id' => 2,

'name' => 'test',

'ver' => '1.1',

),

);

$service = new Yar_Server( Cross\Delegate::loadApp( 'api', $conf ) );

$service->handle();

ZMQ

与ZMQ协作处理sokcet

require '../../crossboot.php';

$conf = array(

'server' => array(

'id' => 2,

'name' => 'test',

'ver' => '1.1',

),

);

$context = new ZMQContext(1);

// Socket to talk to clients

$responder = new ZMQSocket($context, ZMQ::SOCKET_REP);

$responder->bind("tcp://127.0.0.1:5678");

while (true) {

// Wait for next request from client

$request = $responder->recv();

$request_array = array();

parse_str( $request, $request_array );

$controller = isset($request_array['mode']) ? $request_array['mode'] : '';

if( $controller )

{

if(false !== strpos($controller, '.')) {

$controller = str_replace('.', ':', $controller);

} else {

$controller = "{$controller}:index";

}

unset($request_array['mode']);

} else {

$controller = 'main:index';

}

try {

$req = Cross\Delegate::loadApp( 'api', $conf )->get( $controller, $request_array, true );

} catch(Exception $e) {

$req = $e->getMessage();

}

$responder->send( $req );

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值