2、hprose2.X httpsever和httpclient hprose3.X看另外一篇

21 篇文章 0 订阅

前言:

核心版本除了提供了客户端的基本实现的基类以外,还提供了 HTTP 客户端和 Socket 客户端。这两个客户端都可以创建为同步或异步客户端。这两个客户端既可以在命令行环境下使用,也可以在 php-fpm 或其他 PHP 环境下使用。

另外 swoole 版本 提供了纯异步的 HTTP 客户端,Socket 客户端和 WebSocket 客户端。Swoole 客户端只能在命令行环境下使用。

其中 HTTP 客户端支持跟 HTTP、HTTPS 绑定的 Hprose 服务器通讯。

Socket 客户端支持跟 TCP、Unix Socket 绑定的 Hprose 服务器通讯,并且支持全双工和半双工两种模式。

WebSocket 客户端支持跟 ws、wss 绑定的 Hprose 服务器通讯。

swoole 版本这里就不演示了,因为该版本使用的swoole版本比较低,应该是1.8左右吧,期待hprose3.0后再使用吧

 

新建 HttpServer.php

<?php
require_once "vendor/autoload.php";

use Hprose\Http\Server;

function hello($name)
{
    return "Hello $name!";
}

$server = new Server();
$server->add("hello");
$server->debug = false;
$server->crossDomain = true;
$server->start();


这个要配合web服务器使用

这里就简单使用PHP命令了

同级目录 执行下面命令

php -S 127.0.0.1:9501


然后浏览器打开 

http://127.0.0.1:9501/HttpServer.php

就能看到 

Fa2{u#s5"hello"}z



新建 HttpClient.php

<?php
require_once "vendor/autoload.php";

$client = new \Hprose\Http\Client('http://127.0.0.1:9501/HttpServer.php', false);
var_dump($client->hello('Hprose'));


打开终端输入

php HttpClient.php
php HttpClient.php 
string(13) "Hello Hprose!"


就实现简单的跨服务调用啦

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,你的问题是关于 Hprose for Java 服务器的吗?那么,让我来为你解答。Hprose是一种跨语言的RPC协议,提供了多种语言的实现方式,包括Java、PHP、Python、JavaScript等。在Java中,我们可以使用Hprose for Java来实现服务器端的开发。 要使用Hprose for Java,首先需要在项目中引入相应的依赖。在Maven项目中,可以在pom.xml文件中添加以下依赖: ``` <dependency> <groupId>com.github.hsiafan</groupId> <artifactId>hprose-java</artifactId> <version>3.0.8</version> </dependency> ``` 在使用Hprose for Java时,需要定义一个接口,并在接口上添加@HproseService注解,表示这是一个Hprose服务。接着,我们可以在接口中定义需要暴露给客户端调用的方法,方法的参数和返回值可以是任意类型。例如: ``` @HproseService public interface MyService { String sayHello(String name); } ``` 在实现类中,我们需要实现接口中定义的方法,并启动Hprose服务器,将实现类注册为服务提供者。例如: ``` public class MyServiceImpl implements MyService { @Override public String sayHello(String name) { return "Hello, " + name + "!"; } public static void main(String[] args) throws IOException { MyService service = new MyServiceImpl(); HproseTcpServer server = new HproseTcpServer("tcp://0.0.0.0:8080"); server.add(service, MyService.class); server.start(); } } ``` 以上代码创建了一个TCP协议的Hprose服务器,监听8080端口,将MyServiceImpl实例注册为服务提供者,并暴露了一个名为sayHello的方法。 客户端可以使用Hprose for Java提供的客户端类来调用服务端的方法。例如: ``` public class MyClient { public static void main(String[] args) throws IOException { HproseTcpClient client = new HproseTcpClient("tcp://localhost:8080"); MyService service = client.useService(MyService.class); String result = service.sayHello("world"); System.out.println(result); } } ``` 以上代码创建了一个TCP协议的Hprose客户端,连接到本地的8080端口,并调用了服务端的sayHello方法。 这就是Hprose for Java服务器端的基本使用方法。希望能够对你有所帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值