Polytalk
Polytalk is a simple protocol which allows communication between different languages via TCP., (*1)
Polytalk currently supports PHP, Node.js and Ruby., (*2)
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., (*3)
| 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., (*4)
"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., (*5)
$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., (*6)