clue/connection-manager-extra
Extra ReactPHP socket connector decorators that implement ConnectorInterface: retry/repeat, timeouts, delays, reject rules, swappable connectors, consecutive/random selection, concurrency limits, and selective routing for async connection management.
Feature: Simplify usage by supporting new default loop. (#33 by @SimonFrings)
// old (still supported)
$connector = new ConnectionManagerTimeout($connector, 3.0, $loop);
$delayed = new ConnectionManagerDelayed($connector, 0.5, $loop);
// new (using default loop)
$connector = new ConnectionManagerTimeout($connector, 3.0);
$delayed = new ConnectionManagerDelayed($connector, 0.5);
Feature: Full support for PHP 8.1 and PHP 8.2. (#36 and #37 by @SimonFrings)
Feature: Forward compatibility with upcoming Promise v3. (#34 by @clue)
Improve test suite and add badge to show number of project installations. (#35 by @SimonFrings and #31 by @PaulRotmann)
.gitattributes to exclude dev files from exports.
Prepare PHP 8 support, update to PHPUnit 9 and simplify test matrix.
(#24, #25 and #26 by @clue and #27, #28, #29 and #30 by @SimonFrings)Feature: Support custom rejection reason for ConnectionManagerReject (#23 by @clue)
$connector = new ConnectionManagerReject(function ($uri) {
throw new RuntimeException($uri . ' blocked');
});
First stable release, now following SemVer
Contains no other changes, so it's actually fully compatible with the v0.7 releases.
Feature / BC break: Replace deprecated SocketClient with new Socket component (#17 by @clue)
This implies that all connectors from this package now implement the
React\Socket\ConnectorInterface instead of the legacy
React\SocketClient\ConnectorInterface.
BC break: Change $retries to $tries (#14 by @clue)
// old
// 1 try plus 2 retries => 3 total tries
$c = new ConnectionManagerRepeat($c, 2);
// new
// 3 total tries (1 try plus 2 retries)
$c = new ConnectionManagerRepeat($c, 3);
BC break: Timed connectors now use $loop as last argument (#13 by @clue)
// old
// $c = new ConnectionManagerDelay($c, $loop, 1.0);
$c = new ConnectionManagerTimeout($c, $loop, 1.0);
// new
$c = new ConnectionManagerTimeout($c, 1.0, $loop);
BC break: Move all connector lists to the constructor (#12 by @clue)
// old
// $c = new ConnectionManagerConcurrent();
// $c = new ConnectionManagerRandom();
$c = new ConnectionManagerConsecutive();
$c->addConnectionManager($c1);
$c->addConnectionManager($c2);
// new
$c = new ConnectionManagerConsecutive(array(
$c1,
$c2
));
BC break: ConnectionManagerSelective now accepts connector list in constructor (#11 by @clue)
// old
$c = new ConnectionManagerSelective();
$c->addConnectionManagerFor($c1, 'host1');
$c->addConnectionManagerFor($c2, 'host2');
// new
$c = new ConnectionManagerSelective(array(
'host1' => $c1,
'host2' => $c2
));
clue/connection-manager to react/socket-client
and thus replace each occurance of getConnect($host, $port) with create($host, $port)
(#1)ConnectionManagerTimeout now actually work
(#1)ConnectionManagerSelective when no targets
have been found
(#1)ConnectionManagerSelective which works like a network/firewall ACLHow can I help you explore Laravel packages today?