国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

laravel-hprose(rpc框架)

incredible / 1501人閱讀

摘要:基于開發(fā)的擴(kuò)展版本要求安裝或者編輯配置在注冊(cè)和無需手動(dòng)注冊(cè)配置文件監(jiān)聽地址列表,字符串格式數(shù)組是否啟用方法,開啟關(guān)閉,開啟后將自動(dòng)對(duì)外發(fā)布一個(gè)遠(yuǎn)程調(diào)用方法客戶端可調(diào)用創(chuàng)建配置和路由文件應(yīng)用根目錄下的目錄下會(huì)自動(dòng)生成新文件

Laravel-hprose

基于 hprose/hprose-php 開發(fā)的Laravel擴(kuò)展:laravel-hprose

版本要求
Laravel>=5.2
安裝
composer require "zhuqipeng/laravel-hprose:v1.0-alpha"

或者編輯composer.json

"require": {
    "zhuqipeng/laravel-hprose": "v1.0-alpha"
}
配置

在 config/app.php 注冊(cè) ServiceProvider 和 Facade (Laravel 5.5 無需手動(dòng)注冊(cè))

"providers" => [
  // ...

  ZhuqipengLaravelHproseServiceProvider::class,
]
"aliases" => [
  // ...

  "LaravelHproseMethodManage" => ZhuqipengLaravelHproseFacadesHproseMethodManage::class,
]

配置.env文件

監(jiān)聽地址列表,字符串json格式數(shù)組

HPROSE_URIS=["tcp://0.0.0.0:1314"]

是否啟用demo方法,true開啟 false關(guān)閉,開啟后將自動(dòng)對(duì)外發(fā)布一個(gè)遠(yuǎn)程調(diào)用方法 demo

客戶端可調(diào)用:$client->demo()

HPROSE_DEMO=true // true or false

創(chuàng)建配置路由文件:

php artisan vendor:publish --provider="ZhuqipengLaravelHproseServiceProvider"
應(yīng)用根目錄下的config目錄下會(huì)自動(dòng)生成新文件hprose.php

應(yīng)用根目錄下的routes目錄下會(huì)自動(dòng)生成新文件rpc.php

使用 路由
laravel 路由的用法相似,基于 dingo/api 的路由代碼上做了簡單修改

路由文件

routes/rpc.php

添加路由方法

LaravelHproseRouter::add(string $name, string|callable $action, array $options = []);

string $name 可供客戶端遠(yuǎn)程調(diào)用的方法名

string|callable $action 類方法,格式:AppControllersUser@update

array $options 是一個(gè)關(guān)聯(lián)數(shù)組,它里面包含了一些對(duì)該服務(wù)函數(shù)的特殊設(shè)置,詳情請(qǐng)參考hprose-php官方文檔介紹 鏈接

發(fā)布遠(yuǎn)程調(diào)用方法 getUserByNameupdate

LaravelHproseRouter::add("getUserByName", function ($name) {
    return "name: " . $name;
});

LaravelHproseRouter::add("userUpdate", "AppControllersUser@update", ["model" => HproseResultMode::Normal]);

控制器


客戶端調(diào)用

$client->getUserByName("zhuqipeng");
$client->userUpdate("zhuqipeng");

路由組

LaravelHproseRouter::group(array $attributes, callable $callback);

array $attributes 屬性 ["namespace" => "", "prefix" => ""]

callable $callback 回調(diào)函數(shù)

LaravelHproseRouter::group(["namespace" => "AppControllers"], function ($route) {
    $route->add("getUserByName", function ($name) {
        return "name: " . $name;
    });

    $route->add("userUpdate", "User@update");
});

客戶端調(diào)用

$client->getUserByName("zhuqipeng");
$client->userUpdate("zhuqipeng");

前綴

LaravelHproseRouter::group(["namespace" => "AppControllers", "prefix" => "user"], function ($route) {
    $route->add("getByName", function ($name) {
        return "name: " . $name;
    });

    $route->add("update", "User@update");
});

客戶端調(diào)用

$client->user->getByName("zhuqipeng");
$client->user->update("zhuqipeng");
// 或者
$client->user_getByName("zhuqipeng");
$client->user_update("zhuqipeng");
啟動(dòng)服務(wù)
php artisan hprose:socket_server

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/29302.html

相關(guān)文章

  • RPC框架是啥?

    摘要:知乎的點(diǎn)贊,應(yīng)該還是可以參考的。除了網(wǎng)絡(luò)通信,還需要有高效的序列化框架,以及一種尋址方式,如果是帶會(huì)話狀態(tài)的調(diào)用,還需要有會(huì)話的狀態(tài)保持的功能。一般來說,框架實(shí)現(xiàn)的架構(gòu)原理都是類似的。服務(wù)端響應(yīng)主要是服務(wù)端業(yè)務(wù)邏輯實(shí)現(xiàn)。 本博客 貓叔的博客,轉(zhuǎn)載請(qǐng)申明出處 在我剛剛了解分布式的時(shí)候,經(jīng)常對(duì)RPC和分布式有些混淆,甚至一直以為兩者對(duì)等,所以我們先看看他們有什么區(qū)別? RPC實(shí)現(xiàn)了服務(wù)消費(fèi)...

    xietao3 評(píng)論0 收藏0
  • RPC框架是啥?

    摘要:知乎的點(diǎn)贊,應(yīng)該還是可以參考的。除了網(wǎng)絡(luò)通信,還需要有高效的序列化框架,以及一種尋址方式,如果是帶會(huì)話狀態(tài)的調(diào)用,還需要有會(huì)話的狀態(tài)保持的功能。一般來說,框架實(shí)現(xiàn)的架構(gòu)原理都是類似的。服務(wù)端響應(yīng)主要是服務(wù)端業(yè)務(wù)邏輯實(shí)現(xiàn)。 本博客 貓叔的博客,轉(zhuǎn)載請(qǐng)申明出處 在我剛剛了解分布式的時(shí)候,經(jīng)常對(duì)RPC和分布式有些混淆,甚至一直以為兩者對(duì)等,所以我們先看看他們有什么區(qū)別? RPC實(shí)現(xiàn)了服務(wù)消費(fèi)...

    didikee 評(píng)論0 收藏0
  • RPC框架原理及從零實(shí)現(xiàn)系列博客(一):思路篇

    摘要:等之所以支持跨語言,是因?yàn)樗麄冏约憾x了一套結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)格式,如的,用于編解碼對(duì)象,作為各個(gè)語言通信的中間協(xié)議。 前段時(shí)間覺得自己一直用別人的框架,站在巨人的肩膀上,也該自己造造輪子了 一時(shí)興起 就著手寫起了RPC框架 這里寫了系列博客拿給大家分享下 這篇是開篇的思路篇 項(xiàng)目最終的代碼放在了我的github上https://github.com/wephone/Me... 歡迎sta...

    tracy 評(píng)論0 收藏0
  • 分布式下的遠(yuǎn)程通信技術(shù)(RPC)的一些理解

    摘要:都是分開部署,單獨(dú)上線的。序列化畢竟是遠(yuǎn)程通信,需要將對(duì)象轉(zhuǎn)化成二進(jìn)制流進(jìn)行傳輸。服務(wù)化架構(gòu)的演進(jìn)架構(gòu)當(dāng)業(yè)務(wù)規(guī)模很小時(shí),將所有功能都不熟在同一個(gè)進(jìn)程中,通過雙機(jī)或者負(fù)載均衡器實(shí)現(xiàn)負(fù)債分流此時(shí),分離前后臺(tái)邏輯的架構(gòu)是關(guān)鍵。 showImg(https://segmentfault.com/img/bVbiI2F?w=2250&h=1500); 前言 為什么需要RPC,而不是簡單的HTTP...

    EastWoodYang 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<