-
Notifications
You must be signed in to change notification settings - Fork 16
Quick Start with Crossbar.io
Mulkave edited this page Nov 27, 2014
·
4 revisions
- Configure crossbar in
.crossbar/config.json
:
{
"controller": {
},
"workers": [
{
"type": "router",
"realms": [
{
"name": "minion",
"roles": [
{
"name": "anonymous",
"permissions": [
{
"uri": "*",
"publish": true,
"subscribe": true,
"call": true,
"register": true
}
]
}
]
}
],
"transports": [
{
"type": "websocket",
"debug": true,
"endpoint": {
"type": "tcp",
"port": 9090
}
}
]
}
]
}
- Run
composer require 'vinelab/minion'
- Create
VersionProvider.php
at the root and add the provider class:
require __DIR__.'/vendor/autoload.php';
use Vinelab\Minion\Provider;
class VersionProvider extends Provider {
protected $prefix = 'com.minion.';
public function boot()
{
// will be registered as com.minion.phpversion
$this->register('phpversion', 'getPhpVersion');
$this->call('phpversion')->then(function ($version) {
var_dump('', "PHP Version: $version", '');
});
}
public function getPhpVersion()
{
return phpversion();
}
}
- Create
start.php
at the root and add the script that will run our client:
require __DIR__.'/vendor/autoload.php';
require 'VersionProvider.php';
use Vinelab\Minion\Minion;
$m = new Minion();
$m->register('VersionProvider');
$m->run();
- Run
crossbar start
- In another terminal tab run
php start.php
- Tell composer about our provider class
- Update
composer.json
with this content:
- Update
{
"require": {
"vinelab/minion": "dev-master"
},
"autoload": {
"classmap": [
"VersionProvider.php"
]
},
"minimum-stability": "dev"
}
- Run
composer dump-autoload
- Run
./vendor/bin/minion run --register="VersionProvider"
make sure to stop the previous client first with
Ctrl+c
but keep crossbar running
Similar to VersionProvider
you may have as many providers as you like and spread them across your application, then register them with either multiple --register
options on the CLI or programatically using the register($provider)
method.