hprose / hprose-workerman

A PHP class that enables you to use Hprose with Workerman. Includes custom protocol, bridge and interface. Enjoy Hprose at its finest with multi-process powers!
23 stars 9 forks source link

Hprose and Workerman - work together!

Workerman is a framework for building multi-process servers in PHP. It allows you to build a Webserver or another kind of server - maybe for an API. Hprose is both, a protocol and RPC engine. It is modern, lightweight and amazingly fast. It's own serialization format supports objects, binary data and even more!

Introduction to Hprose

Hprose is a High Performance Remote Object Service Engine.

It is a modern, lightweight, cross-language, cross-platform, object-oriented, high performance, remote dynamic communication middleware. It is not only easy to use, but powerful. You just need a little time to learn, then you can use it to easily construct cross language cross platform distributed application system.

Hprose supports many programming languages, for example:

Through Hprose, You can conveniently and efficiently intercommunicate between those programming languages.

Usage

In order to use Hprose with a Workerman setup, you will need to have Composer. With it, the required dependencies are installed.

Example: Create a Hprose-based workerman setup

<?php
# Standalone
require_once "Workerman/Autoloader.php";
require_once "Hprose.php"; # If you run the native PECL extension, you won't need this.

# Using composer
require_once "vendor/autoload.php";

// Create the worker
$host = "127.0.0.1";
$port = 9999;
$worker = new \Workerman\Hprose($host, $port);
// Set options
$worker->count = 4;
$worker->reloadable = true;

// Add a function
function hello($w) { return "Hello, $w!"; }
$hprose = $worker->hprose();
$hprose->addFunction("hello");

// Start the Workerman framework, run the worker(s)...
\Workerman\Worker::runAll();

You now have a Workerman instance with 4 workers listening on your local port 9999. This server balances requests upon processes and lets you scale your application.

Note

hprose-php and hprose-pecl do not currently have methods to interact with a TCP server. You will need to use NodeJS or another supported language to talk to this server instance.

For further information, please consult the hprose-php and/or hprose-pecl repositories.

License

This code is released by the standard MIT license.

Author

This little module was coded by Kevin Ingwersen (Ingwie Phoenix) Hprose was originally developed by Ma Bingyao