react/datagram
Event-driven UDP datagram client/server for ReactPHP. Create UDP sockets, send and receive messages asynchronously with an API modeled after Node.js dgram. Works across platforms with no required PHP extensions; supports PHP 5.3+ (PHP 7+ recommended).
Feature: Add support for PHP 8.1 and PHP 8.2. (#44 by @SimonFrings and #51 by @WyriHaximus)
Feature: Forward compatibility with upcoming Promise v3. (#33 by @WyriHaximus)
Feature / Fix: Improve error reporting when custom error handler is used. (#49 by @clue)
Feature: Avoid dependency on ext-filter.
(#45 by @clue)
Improve documentation and examples and update to use new reactphp/async package. (#50 by @nhedger, #53 by @dinooo13 and #47, #54 and #56 by @SimonFrings)
Improve test suite and report failed assertions. (#48 by @SimonFrings and #55 by @clue)
A major new feature release, see release announcement.
Feature: Simplify usage by supporting new default loop. (#42 by @clue)
// old (still supported)
$factory = new React\Datagram\Factory($loop);
// new (using default loop)
$factory = new React\Datagram\Factory();
Feature: Support falling back to multiple DNS servers from DNS config. (#41 by @clue)
When using the Factory, it will now use all DNS servers configured on your
system. If you have multiple DNS servers configured and connectivity to the
primary DNS server is broken, it will now fall back to your other DNS
servers, thus providing improved connectivity and redundancy for broken DNS
configurations.
Feature: Support PHP 8 (socket address of closed socket should be null). (#39 by @clue)
Improve test suite and add .gitattributes to exclude dev files from exports.
Run tests on PHPUnit 9, switch to GitHub actions and clean up test suite.
(#30, #31 and #38 by @clue, #34 by @reedy, #35 by @WyriHaximus and #37 by @SimonFrings)
Feature: Forward compatibility with upcoming stable DNS component. (#29 by @clue)
Prefix all global functions calls with \ to skip the look up and resolve process and go straight to the global function.
(#28 by @WyriHaximus)
Improve test suite to also test against PHP 7.1 and 7.2. (#25 by @andreybolonin)
Feature: Update DNS dependency to support loading system default DNS
nameserver config on all supported platforms
(/etc/resolv.conf on Unix/Linux/Mac/Docker/WSL and WMIC on Windows)
(#23 by @clue)
This means that connecting to hosts that are managed by a local DNS server, such as a corporate DNS server or when using Docker containers, will now work as expected across all platforms with no changes required:
$factory = new Factory($loop);
$factory->createClient('intranet.example:5353');
Improve README (#22 by @jsor)
Feature: Always use Resolver with default DNS to match Socket component
and update DNS dependency to support hosts file on all platforms
(#19 and #20 by @clue)
This means that connecting to hosts such as localhost (and for example
those used for Docker containers) will now work as expected across all
platforms with no changes required:
$factory = new Factory($loop);
$factory->createClient('localhost:5353');
Feature: Target evenement 3.0 a long side 2.0 and 1.0 (#16 by @WyriHaximus)
Feature: Forward compatibility with EventLoop v1.0 and v0.5 (#18 by @clue)
Improve test suite by updating Travis build config so new defaults do not break the build (#17 by @clue)
This project has been migrated over from clue/datagram which has originally been released in January 2013. Upgrading from clue/datagram v0.5.0? Use namespace
React\Datagraminstead ofDatagramand you're ready to go!
How can I help you explore Laravel packages today?