首页 > 其他分享 >tp框架 yar扩展rpc调用

tp框架 yar扩展rpc调用

时间:2023-02-02 14:01:47浏览次数:36  
标签:msgpack Server tp server yar rpc php com

1.安装yar扩展,根据使用的php版本进行下载

https://pecl.php.net/package/yar
https://pecl.php.net/package/msgpack

2.解压php_msgpack.dll 和php_yar.dll 到 php配置 ext 目录下

3.在对应的php.ini 下添加

extension=msgpack
extension=yar

4.查看扩展是否安装

 5.说用phpstudy添加两个站点

 6.tp5.0后去除了内置的yar类,可以自己手动添加上

<?php

abstract class Yar
{

    /**
     * 构造函数
     * @access public
     */
    public function __construct() {
        //控制器初始化
        if (method_exists($this, '_initialize')) {
            $this->_initialize();
        }

        //判断扩展是否存在
        if (!extension_loaded('yar')) {
            throw new \Exception('not support yar');
        }

        //实例化Yar_Server
        $server = new \Yar_Server($this);
        // 启动server
        $server->handle();
    }

    /**
     * 魔术方法 有不存在的操作的时候执行
     * @access public
     * @param string $method 方法名
     * @param array $args 参数
     * @return mixed
     */
    public function __call($method, $args) {
    }
}

7.站点 rpca.com 代表提供 Yar_Server,新建一个控制器

<?php

namespace app\controller;

use Yar;
class RpcServe extends Yar
{
    /**
     * 这里是测试,描述
     * @params string $name 参数
     * @return string 返回参数
     */
    public function test($name = 'yar') {

        return 'hello '.$name;
    }

}

8.在浏览器 输入  http://rpca.com/RpcServe ,显示以下表示成功

 

 9.在站点rcpb.com 下建立客户端,进行调用 rcpa.com 的方法

<?php

namespace app\controller;

use app\BaseController;

class Index extends BaseController
{

    public function test() {
        $client = new \Yar_Client('http://rpca.com/RpcServe');
        echo $client->test('小猪');
        die;
    }
}

10.在浏览器输入 http://rpcb.com/index/test ,调用成功

 

标签:msgpack,Server,tp,server,yar,rpc,php,com
From: https://www.cnblogs.com/songxuan/p/17085769.html

相关文章

  • (笔记)NTP使用常见问题记录
     一、ntpd&ntpdate  我的两台虚拟机,使用135作为ntp服务器,138以135为准同步时间。version:4.2.6p5ntpd服务是按照一定时间来同步,而ntpdate是立即同步,但是二者都......
  • HTTP基本原理
    1.1HTTP基本原理URI和URLURI:UniformResourseIdentifierURL:UniformResourseLocatorURL的格式scheme://[username:password@]hostname[:port][/path][;......
  • 将Windows系统设置为NTP服务器
    环境Windows10,本机IP地址为:192.168.6.133步骤一、编辑注册表win+r快捷键打开运行窗口,输入regedit打开注册表编辑器,找到以下几项并修改其值:1、将type的值修改为NTP:HK......
  • 【Servlet】Response的OutputStream与Writer输出数据乱码的问题
      OutputStream输出中文数据乱码问题解决方式: packagecn.lsh.servlet;importjava.io.IOException;importjava.io.OutputStream;importjavax.servlet.Se......
  • HTTP代理原理与实现
    HTTP代理原理与实现HTTP客户端向代理发送请求报文,代理服务器需要正确地处理请求和连接(例如正确处理Connection:keep-alive),同时向服务器发送请求,并将收到的响应转发给......
  • 【gRPC】.NET 6 WPF gRPC client 无法找到命名空间生成项目失败
    基于.NET6的WPF项目作为gRPC客户端,生成项目时出错:1>D:\projects\aasp_pc_soft\AutonomicAnalysisSystemForPressurePellets\AutoAnalysisSystemClientTest\AutoAnalysis......
  • 《RPC实战与核心原理》学习笔记Day15
    21|流量回放:保障业务技术升级的神器什么是流量回放?流量就是指在某个时间段内的所有请求,我们通过某种手段把发送到A应用的所有请求录制下来,然后把这些请求统一转发到B......
  • 【缓存】有关HTTP缓存的总结
    HTTP缓存缓存的目的主要作用是可以加快资源获取速度,提升用户体验,减少网络传输,缓解服务端的压力。强缓存不需要发送请求到服务端,直接读取浏览器本地缓存,显示的HTTP状......
  • HttpClient 正确使用方法
    如何正确模拟 Http请求,建议使用HttpClient 错误用法   varhttpClient=newHttpClient(); 正确用法ServiceCollection.AddHttpClient();publicc......
  • 你能比较一下 GraphQL 和 tRPC 吗?
    介绍Twitter上有很多关于“GraphQL与tRPC”的讨论,用于为您的应用程序构建现代后端。GraphQL近年来作为REST事实上的继承者而变得流行起来,而tRPC解决了全栈应用程序中......