ligao 3d5201b28c Initial commit před 10 měsíci
..
.github 3d5201b28c Initial commit před 10 měsíci
docs 3d5201b28c Initial commit před 10 měsíci
examples 3d5201b28c Initial commit před 10 měsíci
lib 3d5201b28c Initial commit před 10 měsíci
tests 3d5201b28c Initial commit před 10 měsíci
.gitignore 3d5201b28c Initial commit před 10 měsíci
COPYING.md 3d5201b28c Initial commit před 10 měsíci
Makefile 3d5201b28c Initial commit před 10 měsíci
README.md 3d5201b28c Initial commit před 10 měsíci
composer.json 3d5201b28c Initial commit před 10 měsíci
phpunit.xml.dist 3d5201b28c Initial commit před 10 měsíci

README.md

Websocket Client and Server for PHP

Build Status Coverage Status

This library contains WebSocket client and server for PHP.

The client and server provides methods for reading and writing to WebSocket streams. It does not include convenience operations such as listeners and implicit error handling.

Documentation

Installing

Preferred way to install is with Composer.

composer require textalk/websocket
  • Current version support PHP versions ^7.4|^8.0.
  • For PHP 7.2 and 7.3 support use version 1.5.
  • For PHP 7.1 support use version 1.4.
  • For PHP ^5.4 and 7.0 support use version 1.3.

Client

The client can read and write on a WebSocket stream. It internally supports Upgrade handshake and implicit close and ping/pong operations.

$client = new WebSocket\Client("ws://echo.websocket.org/");
$client->text("Hello WebSocket.org!");
echo $client->receive();
$client->close();

Server

The library contains a rudimentary single stream/single thread server. It internally supports Upgrade handshake and implicit close and ping/pong operations.

Note that it does not support threading or automatic association ot continuous client requests. If you require this kind of server behavior, you need to build it on top of provided server implementation.

$server = new WebSocket\Server();
$server->accept();
$message = $server->receive();
$server->text($message);
$server->close();

License and Contributors

ISC License

Fredrik Liljegren, Armen Baghumian Sankbarani, Ruslan Bekenev, Joshua Thijssen, Simon Lipp, Quentin Bellus, Patrick McCarren, swmcdonnell, Ignas Bernotas, Mark Herhold, Andreas Palm, Sören Jensen, pmaasz, Alexey Stavrov, Michael Slezak, Pierre Seznec, rmeisler, Nickolay V. Shmyrev, Christoph Kempen, Marc Roberts, Antonio Mora, Simon Podlipsky, etrinh.