Provides extra (in terms of "additional", "extraordinary", "special" and "unusual") decorators, built on top of ReactPHP's Socket
MIT License
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)
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
getConnect($host, $port)
with create($host, $port)
ConnectionManagerTimeout
now actually workConnectionManagerSelective
when no targets