react / datagram
Event-driven UDP datagram socket client and server for ReactPHP
Fund package maintenance!
Open Collective
Installs: 513 080
Dependents: 35
Suggesters: 0
Security: 0
Stars: 94
Watchers: 10
Forks: 26
Open Issues: 2
Requires
- php: >=5.3
- evenement/evenement: ^3.0 || ^2.0 || ^1.0
- react/dns: ^1.13
- react/event-loop: ^1.2
- react/promise: ^3.2 || ^2.1 || ^1.2
Requires (Dev)
- phpunit/phpunit: ^9.6 || ^5.7 || ^4.8.36
- react/async: ^4.3 || ^3 || ^2
README
Event-driven UDP datagram socket client and server for ReactPHP.
Quickstart example
Once installed, you can use the following code to connect to an UDP server listening on
localhost:1234
and send and receive UDP datagrams:
$factory = new React\Datagram\Factory(); $factory->createClient('localhost:1234')->then(function (React\Datagram\Socket $client) { $client->send('first'); $client->on('message', function($message, $serverAddress, $client) { echo 'received "' . $message . '" from ' . $serverAddress. PHP_EOL; }); });
See also the examples.
Usage
This library's API is modelled after node.js's API for UDP / Datagram Sockets (dgram.Socket).
Install
The recommended way to install this library is through Composer. New to Composer?
This project follows SemVer. This will install the latest supported version:
composer require react/datagram:^1.10
See also the CHANGELOG for details about version upgrades.
This project aims to run on any platform and thus does not require any PHP extensions and supports running on legacy PHP 5.3 through current PHP 8+ and HHVM. It's highly recommended to use PHP 7+ for this project.
Tests
To run the test suite, you first need to clone this repo and then install all dependencies through Composer:
composer install
To run the test suite, go to the project root and run:
vendor/bin/phpunit
License
MIT, see LICENSE file.