polytalk / polytalk
Protocol to communicate between languages.
dev-master
2012-11-30 20:50 UTC
Requires
- php: >=5.4
- react/socket: *
This package is not auto-updated.
Last update: 2024-04-27 11:10:51 UTC
README
Polytalk is a simple protocol which allows communication between different languages via TCP.
Polytalk currently supports PHP, Node.js and Ruby.
Protocol
The protocol is a simple language agnostic JSON object containing the class, method and arguments. It will then return an response as either a string or JSON object.
Key | Value |
---|---|
class | The class to call the method on. Namespaced classes require the :: separator. |
method | The method you want to call. |
arguments | The arguments to inject into the method in key value pairs. |
Installation
The recommended way to install Polytalk is through composer.
"require": { "polytalk/polytalk": "dev-master" }
Server Example
Be sure that any classes you want to be exposed by the server to the client are included/required from the server.
$server = new Polytalk\Server(['port' => 9090]); $server->run(function ($connection, $request) use ($server) { $response = $server->call($request); $server->push($connection, $response); });
Client Example
$client = new Polytalk\Client(['port' => 9090]); $request = [ 'class' => 'Model::Order', 'method' => 'findBySize', 'arguments' => [ 'size' => 'small', 'limit' => 3 ] ]; // Return response $response = $client->call($request); var_dump($response); // Callback $first_order = $client->call($request, function ($response) { return $response[0]; }); var_dump($first_order);
License
MIT, see LICENSE.