We’re here to help and answer any question you might have. We look forward to hearing from you.

Ratchet is a popular PHP library that allows developers to build real-time applications, such as chat systems, notifications, and collaborative tools, using WebSockets. It provides a convenient and easy-to-use interface for creating WebSocket servers in PHP.


DAStek logo

What will you do

  1. Install Ratchet
  2. Creating a WebSocket Server.


  1. PHP 5.4 or higher
  2. A web server that supports PHP
  3. Composer for dependency management
  4. WebSockets support enabled on your server (Apache with mod_proxy_wstunnel or Nginx with proxy_pass)

Step 1: Install Ratchet

To get started, you need to install Ratchet. You can use Composer, a dependency manager for PHP, to install Ratchet. Create a new directory for your project and run the following command in your terminal:


composer require cboden/ratchet


Step 2: Create a WebSocket Server


use Ratchet\Server\IoServer;
use Ratchet\Http\HttpServer;
use Ratchet\WebSocket\WsServer;
use MyApp\Chat;
require __DIR__ . ‘/vendor/autoload.php’;
$server = IoServer::factory(
new HttpServer(
new WsServer(
new Chat()



In this example, we create a simple chat application using Ratchet. You can replace `Chat` with your own class that handles the WebSocket connections and events.

Step 3: Create the WebSocket Application Class

Create a new directory called `MyApp` and inside it, create a file called `Chat.php`. Add the following code to the file:




namespace MyApp;

use Ratchet\MessageComponentInterface;

use Ratchet\ConnectionInterface;

class Chat implements MessageComponentInterface


    protected $clients;

    public function __construct()


        $this->clients = new \SplObjectStorage();


    public function onOpen(ConnectionInterface $conn)



¬†¬†¬†¬†¬†¬†¬† echo “New connection! ({$conn->resourceId})\n”;


    public function onMessage(ConnectionInterface $from, $msg)


        foreach ($this->clients as $client) {

            if ($client !== $from) {





    public function onClose(ConnectionInterface $conn)



¬†¬†¬†¬†¬†¬†¬† echo “Connection {$conn->resourceId} has disconnected\n”;


    public function onError(ConnectionInterface $conn, \Exception $e)


¬†¬†¬†¬†¬†¬†¬† echo “An error has occurred: {$e->getMessage()}\n”;





In this class, we implement the `MessageComponentInterface` from Ratchet, which provides the necessary methods for handling WebSocket events.

Step 4: Run the Server

Run the Server


php server.php


You should see a message indicating that the server is running

Step 5:  Create a WebSocket Client.

You can now create a WebSocket client to connect to the server. Here’s an example using JavaScript:



<!DOCTYPE html>




¬†¬†¬†¬† ¬†¬†¬†var conn = new WebSocket(‘ws://localhost:8080’);

        conn.onopen = function(e) {

¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬† console.log(“Connection established!”);

¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬† conn.send(‘Hello Server!’);


        conn.onmessage = function(e) {

¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬† console.log(“Message from server: ” + e.data);








This simple client establishes a WebSocket connection to `ws://localhost:8080` and sends a message to the server. It also logs any messages received from the server to the console.

That’s it! You now have a basic example of how to use Ratchet WebSocket in PHP. You can expand on this example to build more complex real-time applications.

Trust and Worth

Our Customers

We are having a diversified portfolio and serving customers in the domains namely Sports Management, Online Laundry System, Matrimonial, US Mortgage, EdTech and so on.

Would you like to start a project with us?

DAStek team would be happy to hear from you and would love to turn your ‚ÄėImaginations to Reality‚Äô.