热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

关于LaravelHproseRPC服务

​下面由laravel教程栏目给大家介绍关于LaravelHproseRPC服务,希望对需要的朋友有所帮助!
下面由laravel教程栏目给大家介绍关于 Laravel Hprose RPC 服务,希望对需要的朋友有所帮助!

Laravel Hprose RPC 服务

开源地址:https://github.com/flc1125/laravel-hprose

该项目支持 Laravel 及非 Laravel 项目使用,支持 php >= 5.3 版本语法

注: 以下内容,默认你对 Hprose 已经有了一定了解。内容基于 Laravel 项目介绍。

安装

  • 环境依赖 C 扩展 hprose,详见:Hprose 官网、Hprose Pecl 扩展

    服务端安装即可,客户端可不安装
    pecl install hprose
  • 安装扩展包

    composer require flc/laravel-hprose

配置

服务提供者与门面

Laravel >= 5.5 已增加包自动发现。旧版本,请手动设置
  • config/app.php 文件下加入服务提供者

    'providers' => [
    
        ...
    
        Flc\Laravel\Hprose\HproseServiceProvider::class,
    ]
  • config/app.php 文件下加入门面

    'aliases' => [
    
        ...
    
        'HproseRoute' => Flc\Laravel\Hprose\Facades\HproseRoute::class,
        'HproseServer' => Flc\Laravel\Hprose\Facades\HproseServer::class,
        'HproseClient' => Flc\Laravel\Hprose\Facades\HproseClient::class,
    ]

初始化文件

php artisan hprose:generator

执行完成后,会分别生成以下文件:

  • 路由服务提供者:app/Providers/HproseRouteServiceProvider.php
  • 路由文件:routes/hprose.php (该路由文件非 Laravel 路由,下文简称 Hprose 路由

    Hprose 路由控制器根目录默认在:app/Http/Controllers/Hprose 目录下,可自行在 app/Providers/HproseRouteServiceProvider.php 调整

config/app.php 文件下加入默认的 Hprose 路由服务提供者

'providers' => [

    ...

    app\Providers\HproseRouteServiceProvider::class,
]

发布配置

php artisan vendor:publish --provider="Flc\Laravel\Hprose\HproseServiceProvider"

执行后,会生成配置文件路径:/config/hprose.php

使用

配置说明

配置文件路径:/config/hprose.php

 [
        'default'     => 'http',
        'connections' => [
            'http' => [
                'protocol' => 'http',
            ],
        ],
    ],

    'client' => [
        'default'     => 'http',
        'connections' => array(
            'http' => array(
                'protocol' => 'http',
                'uri'      => 'http://192.168.2.67:9001/api/server',  // 此处为服务端的连接地址
                'async'    => false,
            ),
        ),
    ]
];

目前版本,除客户端配置中的远程服务器地址外,其他配置默认即可

其他均为后续支持 swoole-httptcpwebsocket 等,做提前架设

服务端

增加一个 Laravel 路由,用于启动 Http 服务,如:

对应控制器:

start();
    }
}

访问:http://localhost/hprose-server

Hprose 路由配置

option(['...']);
Controller@tests 的方法自行定义

客户端

tests('tests');  // 其他连接
        $result = HproseClient::connection()->tests->one('tests');

        print_r($result);
    }
}

非 Laravel 项目使用

服务端

group(['prefix' => 'tests', 'namespace' => 'App\\Controllers'], function ($router) {
    $router->add('one', 'Controller@one');
    $router->add('two', 'Controller@two')->option(['...']);

    $router->group(['prefix' => 'group'], function ($router) {
        $router->add('one', 'Controller@group_one');

        ...

    });
});

$app = [
    'config' => [
        'hprose.server.default' => 'http',
        'hprose.server.connections' => [
            'http' => [
                'protocol' => 'http',
            ],
        ],
    ],
];

$server = new \Flc\Laravel\Hprose\Server($app);
$server->setRouter($router)->start();

客户端

 [
        'hprose.client.default' => 'http',
        'hprose.client.connections' => [
            'http' => [
                'protocol' => 'http',
                'uri'      => 'http://localhost/server.php',
                'async'    => false
            ]
        ]
    ]
];

$client = new \Flc\Laravel\Hprose\Client($app);

print_r($client->tests->one('222').PHP_EOL);

以上就是关于 Laravel Hprose RPC 服务的详细内容,更多请关注其它相关文章!


推荐阅读
  • 篇首语:本文由编程笔记#小编为大家整理,主要介绍了(2022版)一套教程搞定k8s安装到实战|Affinity相关的知识,希望对你有一定的参考价值。视频来源ÿ ... [详细]
  • GetWindowLong函数
    今天在看一个代码里头写了GetWindowLong(hwnd,0),我当时就有点费解,靠,上网搜索函数原型说明,死活找不到第 ... [详细]
  • PHP反射API的功能和用途详解
    本文详细介绍了PHP反射API的功能和用途,包括动态获取信息和调用对象方法的功能,以及自动加载插件、生成文档、扩充PHP语言等用途。通过反射API,可以获取类的元数据,创建类的实例,调用方法,传递参数,动态调用类的静态方法等。PHP反射API是一种内建的OOP技术扩展,通过使用Reflection、ReflectionClass和ReflectionMethod等类,可以帮助我们分析其他类、接口、方法、属性和扩展。 ... [详细]
  • 如何通过swoole加速laravel的问题?
    这篇文章主要介绍了关于如何使用swoole加速laravel,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下再来复习一下吧,导致php慢的各种因素中解析性语言的 ... [详细]
  • 这一篇主要总结一下jQuery这个js在引入的时候做的一些初始化工作第一句window.undefinedwindow.undefined;是为了兼容低版本的IE而写的因为在低版本 ... [详细]
  • 在这一期的SendMessage函数应用中,我将向大家介绍如何利用消息函数来扩展树型列表(TreeView)控件的功能相信对于树型列表控件大家十分的熟悉, ... [详细]
  • 设计模式(三)——自动加载
    为什么80%的码农都做不了架构师?php提供了两种方案来自动载入:__autoload()函数和spl系列函数一、前提约束1.类文件命名方式采用驼 ... [详细]
  • 项目为laravel网站上的项目:http://laravelacademy.org/post/2265.html当部署完成后,用浏览器打开首页出现/blognotfou ... [详细]
  • Swoole是针对PHP的生产级异步编程框架。它是一种用纯C语言编写的PHP扩展,它使PHP开发人员能够在PHP中编写高性能,可扩展的并发TCP ... [详细]
  • IamcurrentlyworkingonashoppingcartapplicationusingMVC5andhavearequirementtoallowedi ... [详细]
  • jcip里scalability的定义:Scalabilitydescribestheabilitytoimprovethroughputorcapacitywh ... [详细]
  • IndexController.class.phpindex.html(在view里建个和控制器同名的文件夹Index再建个和方法同名的 ... [详细]
  • Spring源码解密之默认标签的解析方式分析
    本文分析了Spring源码解密中默认标签的解析方式。通过对命名空间的判断,区分默认命名空间和自定义命名空间,并采用不同的解析方式。其中,bean标签的解析最为复杂和重要。 ... [详细]
  • 在springmvc框架中,前台ajax调用方法,对图片批量下载,如何弹出提示保存位置选框?Controller方法 ... [详细]
  • 本文涉及源码版本为2.6.9准备工作down一份Vue源码,从package.json入手,找我们需要的代码1、package.json中的scripts,build:nodesc ... [详细]
author-avatar
幼俐佩其392
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有