JSON-RPC client and server for PHP 5.3+
These are just some quick examples. Check out the docs in /doc/
.
Do a request through HTTP...
<?php
$connection = Tivoka\Client::connect('http://example.com/api')
$request = $connection->sendRequest('substract', array(51, 9));
print $request->result;// 42
?>
...or plain TCP
<?php
$connection = Tivoka\Client::connect(array('host' => 'example.com', 'port' => 1234))
$request = $connection->sendRequest('substract', array(51, 9));
print $request->result;// 42
?>
...or WebSocket
<?php
$connection = Tivoka\Client::connect('ws://example.com/api')
$request = $connection->sendRequest('substract', array(51, 9));
print $request->result;// 42
?>
Create a server
<?php
$methods = array(
'substract' => function($params) {
list($num1, $num2) = $params
return $num1 - $num2;
}
);
Tivoka\Server::provide($methods)->dispatch();
?>
- Have a look at the documentation in
doc/
- Submit any bugs, suggestions or questions to the issue tracker
- Set up
composer.json
in your project directory:
{
"require":{"tivoka/tivoka":"*"}
}
- Run composer:
$ php composer.phar install
Now, include 'vendor/autoload.php'
Copyright 2011-2012 by Marcel Klehr MIT License.
3.4.2
- Fix HTTP via curl: Don't add a trailing newline for http headers (thanks to @oskarcafe)
3.4.1
- Http: Use cURL if available (thanks to @hschletz)
3.4.0
- Adding options to set/override request headers in WebSocket (thanks to @fiddur)
3.3.0
- Add websocket transport (thanks to @fiddur)
3.2.1
- Fix #41: Fix Exception catcher in Tivoka\Server\Server::process (thanks to @ikulis)
3.2.0
- Feature: Plain TCP connections (revamped a lot of our internals along the way! thanks go out to @rafalwrzeszcz)
- Feature: Configurable connection timeout
3.1.0
- Fix #27: json-rpc response[result] may be
null
(thanks to @vaab) - Feature: Allow setting of request headers and expose response headers (thanks to @vaab)
- Fix bug with client-side notifications
- Add docs in
doc/
3.0.1
- Fix a typo, that used to screw up things when throwing an exception (thanks to @gahr)
3.0.0
- use Namespaces (no longer supports php5.2)
- new factory classes (per server/client)
- Requests no longer require $id argument
- Dramatically simplified serverside usage
- Fluid spec version setter
- Now available as composer package
2.0.3
- Added HTTPS support
- target scheme is now treated case insensitive
2.0.2
- Introduced new directory structure
- Fixed #10
- Some Exception messages changed slightly to be more specific
2.0.1
- Patched http method spelling (make uppercase, so all servers accept it)
2.0.0
- complete Code base rework
- major API change
- removed Response Class
- Added aa number of shortcuts
- Implemented native remote interface