hprose / hprose-php
它是一个现代、轻量级、跨语言、跨平台的面向对象、高性能、远程动态通信中间件。它不仅易于使用,而且功能强大。您只需花一点时间学习,然后就可以用它轻松构建跨语言、跨平台分布式应用。
Requires
- php: >=5.3.0
This package is not auto-updated.
Last update: 2024-09-20 02:06:18 UTC
README
介绍
Hprose 是一个高性能远程对象服务引擎。
它是一个现代、轻量级、跨语言、跨平台的面向对象、高性能、远程动态通信中间件。它不仅易于使用,而且功能强大。您只需花一点时间学习,然后就可以用它轻松构建跨语言、跨平台分布式应用系统。
Hprose 支持许多编程语言,例如
- AAuto Quicker
- ActionScript
- ASP
- C++
- Dart
- Delphi/Free Pascal
- dotNET(C#, Visual Basic...)
- Golang
- Java
- JavaScript
- Node.js
- Objective-C
- Perl
- PHP
- Python
- Ruby
- ...
通过 Hprose,您可以方便、高效地在这些编程语言之间进行通信。
本项目是 Hprose 在 PHP 上的实现。
安装
下载源码
使用 composer
安装
{ "require": { "hprose/hprose": "dev-master" } }
使用方法
服务器
Hprose for PHP 非常易于使用。您可以创建一个 hprose 服务器,如下所示
<?php require_once('Hprose.php'); function hello($name) { return 'Hello ' . $name; } $server = new HproseHttpServer(); $server->addFunction('hello'); $server->start();
您也可以使用 HproseSwooleServer
来创建一个独立的 hprose 服务器
server.php
<?php require_once("Hprose.php"); function hello($name) { return 'Hello ' . $name; } $server = new HproseSwooleServer('http://0.0.0.0:8080/'); $server->addFunction('hello'); $server->start();
然后使用命令行启动它
php server.php
要使用 HproseSwooleServer
,您需要先安装 swoole。支持的最低版本为 swoole 1.7.16。
HproseSwooleServer
不仅支持创建 http 服务器,还支持创建 tcp、unix 和 websocket 服务器。例如
tcp_server.php
<?php require_once("Hprose.php"); function hello($name) { return 'Hello ' . $name; } $server = new HproseSwooleServer('tcp://0.0.0.0:1234'); $server->addFunction('hello'); $server->start();
unix_server.php
<?php require_once("Hprose.php"); function hello($name) { return 'Hello ' . $name; } $server = new HproseSwooleServer('unix:/tmp/my.sock'); $server->addFunction('hello'); $server->start();
websocket_server.php
<?php require_once("Hprose.php"); function hello($name) { return 'Hello ' . $name; } $server = new HproseSwooleServer('ws://0.0.0.0:8000/'); $server->addFunction('hello'); $server->start();
websocket 服务器也是一个 http 服务器。
客户端
然后您可以创建一个 hprose 客户端来调用它,如下所示
<?php require_once("Hprose.php"); $client = new HproseHttpClient('http://127.0.0.1/server.php'); echo $client->hello('World');
Hprose 还提供了 HproseSwooleClient
,它支持 http、tcp 和 unix。例如
<?php require_once("Hprose.php"); $client = new HproseSwooleClient('tcp://0.0.0.0:1234'); echo $client->hello('World'); ?>
它还支持异步并发调用。例如
<?php require_once("Hprose.php"); $client = new HproseSwooleClient('tcp://0.0.0.0:1234'); $client->hello('World', function() { echo "ok\r\n"; }); $client->hello('World 1', function($result) { echo $result . "\r\n"; }); $client->hello('World 2', function($result, $args) { echo $result . "\r\n"; }); $client->hello('World 3', function($result, $args, $error) { echo $result . "\r\n"; }); ?>
异步并发调用的回调函数支持 0 - 3 个参数
异常处理
如果服务器发生错误,或者您的服务函数/方法抛出异常,它将被发送到客户端,客户端将抛出异常。您可以使用 try 语句来捕获它。
异步调用不会抛出异常。异常对象将被传递给回调函数作为第三个参数。