• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

基于-hprosehprosephp-开发的Laravel扩展whereoflaravelhprose

php 搞代码 3年前 (2022-02-28) 22次浏览 已收录 0个评论
文章目录[隐藏]

基于 hprose/hprose-php 开发的Laravel扩大:whereof/laravel-hprose

装置

composer require whereof/laravel-hprose

配置文件

<?php

return [
    //rpc 服务
    'server' => [
        // hprose 调试模式
        'debug' => true,
        //监听地址
        'tcp_uris'       => [
            'tcp://0.0.0.0:1314',
        ],
        //注册rpc 服务 目录地址
        'route_path'     => glob(base_path("rpc") . '/*.php'),
        // 通过路由查看注册的办法
        'http'           => [
            // 如果设置false 在控制台显示调用办法,否在在路由显示调用办法
            'enable'       => false,
            //如果设置了true 这里就是路由前缀
            'route_prefix' => 'rpc'
        ],
    ],
    //rpc 客户端
    'client' => [
        // 服务端监听地址
        'tcp_uris' => [
            'tcp://127.0.0.1:1314',
        ],
        //是否异步
        'async'    => false
    ],
];

日志记录 /config/logging.php

'channels' => [
     ............
     'hprose' => [
          'driver' => 'daily',
          'path'   => storage_path('logs/hprose.log'),
          'days'   => 14,
      ],
]

非强制配置,不配置,就会走默认的日志记录

laravel配置

//在 `config/app.php` 注册 HproseServiceProvider 
'providers' => [
    .....
    \whereof\laravel\hprose\HproseServiceProvider::class
]
php artisan vendor:publish --provider="whereof\laravel\hprose\HproseServiceProvider"

Lumen配置

将配置信息放在/config/hprose.php

/bootstrap/app.php
$app->register(\whereof\laravel\hprose\HproseServiceProvider::class);

/路由注册 rpc/demo.php
<?php
use whereof\laravel\hprose\Facades\HproseRoute;
// 注册callback
HproseRoute::add(function () {
    return 'service hello';
}, 'hello');
// 注册class
HproseRoute::add(\whereof\laravel\hprose\Services\UserServer::class);

//注册中间价
HproseRoute::addInvokeHandler(function ($name, array &$args, stdClass $context, Closure $next) {
    \whereof\laravel\hprose\Support\LaravelHelper::log('调用的近程函数/办法名:' . $name, 'debug', $args);
    $result = $next($name, $args, $context);
    return $result;
});

服务端 办法注入,类注入以及目录下类注入

<?php

use whereof\laravel\hprose\Facades\HproseRoute;
// 注册callback
HproseRoute::add(function () {
    return 'service hello';
}, 'hello');
// 注册class
HproseRoute::add(\whereof\laravel\hprose\Services\UserServer::class);

//注册中间价
HproseRoute::addInvokeHandler(function ($name, array &$args, stdClass $context, Closure $next) {
    \whereof\laravel\hprose\Support\LaravelHelper::log('调用的近程函数/办法名:' . $name, 'debug', $args);
    $result = $next($name, $args, $context);
    return $result;
});
// 注册整个目录
HproseRoute::addPath(app_path('Services'));

应用addPath的时候要留神:在类中构造方法__construct 参数不能是必传参数.

启动rpc服务

php artisan hprose:socket

客户端调用

$uris =['tcp://127.0.0.1:1314'];
$client = new \whereof\laravel\hprose\Clients\SocketClient($uris, false);
$client->hello()
$client->whereof_hprose_demoService->kan()

须要配置配置
'client' => [
  'tcp_uris' => [
      'tcp://127.0.0.1:1314',
  ],
    'async' => false
],
app('hprose.socket.client')->hello()

搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:基于-hprosehprosephp-开发的Laravel扩展whereoflaravelhprose
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址