WAMP client in PHP

Fund package maintenance!

Installs: 1 936 441

Dependents: 3

Suggesters: 0

Security: 0

Stars: 32

Watchers: 5

Forks: 6

Open Issues: 0

v1.5.0 2021-11-24 03:24 UTC

This package is auto-updated.

Last update: 2024-05-24 08:55:17 UTC


NOTE - This repository is deprecated, future releases will only be made for critical bugs and security vulnerabilities. Use Pawl instead.


Latest Stable Version Latest Unstable Version Total Downloads License


This package provides a PHP client that can send messages to a websocket server utilizing the WAMPv1 protocol. Listening for replies is not supported at this time.

Supported functions:

  • prefix
  • call
  • publish
  • event


Directly Create A Client

You can directly create a Gos\Component\WebSocketClient\Wamp\ClientInterface instance by creating a new Gos\Component\WebSocketClient\Wamp\Client object. The constructor has two mandatory requirements; the server host and port. You may review the Client class constructor to see all arguments.

use Gos\Component\WebSocketClient\Wamp\Client;

$client = new Client('', 8080);

Through The Factory

A Gos\Component\WebSocketClient\Wamp\ClientFactoryInterface is available to create client instances as well. The default Gos\Component\WebSocketClient\Wamp\ClientFactory supports a PSR-3 logger and will automatically inject it into the client if one is present.

use Gos\Component\WebSocketClient\Wamp\ClientFactory;

$factory = new ClientFactory(['host' => '', 'port' => 8080]);
$client = $factory->createConnection();

Interact With Server

Once you have created a client, you can connect and interact with your websocket server.

use Gos\Component\WebSocketClient\Wamp\ClientFactory;

$factory = new ClientFactory(['host' => '', 'port' => 8080]);
$client = $factory->createConnection();

$sessionId = $client->connect();

// Establish a prefix on server
$client->prefix('calc', 'http://example.com/simple/calc#');

// You can send an arbitrary number of arguments
$client->call('calc', 12, 14, 15);

$data = [0, 1, 2];

// Or an array
$client->call('calc', $data);

$exclude = [$sessionId]; // No sense in sending the payload to ourselves
$eligible = []; // List of other clients ids that are eligible to receive this payload

$client->publish('topic', '', $exclude, $eligible);

// Publish an event
$client->event('topic', '');


This software is distributed under MIT License. See LICENSE for more info.

Original Project