Skip to content
forked from varspool/Wrench

A simple PHP WebSocket implementation

License

Notifications You must be signed in to change notification settings

chrome-php/wrench

This branch is 55 commits ahead of varspool/Wrench:master.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

10cd90c · Nov 6, 2024
Nov 6, 2024
Mar 17, 2024
Nov 6, 2024
Nov 6, 2024
Feb 27, 2023
Jun 19, 2021
Jun 19, 2021
Jun 19, 2021
Mar 25, 2022
Nov 6, 2024
Mar 17, 2024
Jun 19, 2021
Nov 6, 2024
Feb 27, 2023
Jun 20, 2021
Nov 6, 2024

Repository files navigation

Wrench

Latest Stable Version License

A simple PHP WebSocket implementation.

Installation

The library can be installed with Composer and is available on Packagist under chrome-php/chrome:

$ composer require chrome-php/wrench

PHP 7.4-8.4 are currently supported, only.

Usage

This creates a server on 127.0.0.1:8000 with one Application that listens for WebSocket requests to ws://localhost:8000/echo and ws://localhost:8000/chat:

Server

// An example application, that just echoes the received
// data back to the connection that sent it
$app = new class implements \Wrench\Application\DataHandlerInterface
{
    public function onData(string $data, \Wrench\Connection $connection): void
    {
        $connection->send($data);
    }
};

// A websocket server, listening on port 8000
$server = new \Wrench\BasicServer('ws://localhost:8000', [
    'allowed_origins' => [
        'mysite.com',
        'mysite.dev.localdomain'
    ],
]);

$server->registerApplication('echo', $app);
$server->registerApplication('chat', new \My\ChatApplication());
$server->setLogger($monolog); // PSR3
$server->run();

Client

// A client side example, that sends a string and will receive
// the data back to the connection that sent it
$client = new Client('ws://localhost:8000', 'http://localhost:8000');
$client->connect();
$client->sendData('hello');
$response = $client->receive()[0]->getPayload();
$client->disconnect();

Contributing

See CONTRIBUTING.md for contribution details.

License

This project is licensed under the The MIT License (MIT).

About

A simple PHP WebSocket implementation

Topics

Resources

License

Code of conduct

Stars

Watchers

Forks

Languages

  • PHP 99.9%
  • Makefile 0.1%