Datagram component

Build Status Code Climate

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:

$loop = React\EventLoop\Factory::create();

$factory = new React\Datagram\Factory($loop);

$factory->createClient('localhost:1234')->then(function (React\Datagram\Socket $client) {

    $client->on('message', function($message, $serverAddress, $client) {
        echo 'received "' . $message . '" from ' . $serverAddress. PHP_EOL;


See also the examples.


This library's API is modelled after node.js's API for UDP / Datagram Sockets (dgram.Socket).


The recommended way to install this library is through Composer. New to Composer?

$ composer require react/datagram:^1.3

See also the CHANGELOG for details about version upgrades.


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:

$ php vendor/bin/phpunit