Symfony ClankBundle

Installs: 176 610

Dependents: 5

Stars: 115

Watchers: 15

Forks: 29

Open Issues: 25

Type: symfony-bundle

0.1.6 2013-11-23 17:19 UTC



Clank is a Symfony2 Bundle designed to bring together WebSocket functionality in a easy to use application architecture.

Much like Socket.IO it provides both server side and client side code ensuring you have to write as little as possible to get your app up and running.

Powered By Ratchet and Autobahn JS, with Symfony2


Code Cookbook

Sample Projects

  • Clank Chat (View Source) This is a simple chat room site where a user can join any channel and chat to people there.

Installation Instructions

Step 1: Install via composer

Add the following to your composer.json

    "require": {
        "jdare/clank-bundle": "0.1.*"

Then update composer to install the new packages:

php composer.phar update

Step 2: Add to your App Kernel

// app/AppKernel.php

public function registerBundles()
    $bundles = array(
        // ...
        new JDare\ClankBundle\JDareClankBundle(),

Step 3: Add to Assetic Bundles

Add "JDareClankBundle" to your assetic bundles in app/config (this is required to render the client side code).

# Assetic Configuration
    bundles:        [ JDareClankBundle ]

Step 4: Configure WebSocket Server

Add the following to your app/config.yml

# Clank Configuration
        port: 8080        #The port the socket server will listen on
        host:   #(optional) The host ip to bind to

Note: when connecting on the client, if possible use the same values as here to ensure compatibility for sessions etc.

Step 5: Launching the Server

The Server Side Clank installation is now complete. You should be able to run this from the root of your symfony installation.

php app/console clank:server

If everything is successful, you will see something similar to the following:

Starting Clank
Launching Ratchet WS Server on: *:8080

This means the websocket server is now up and running!

Next Steps

For further documentations on how to use Clank, please continue with the client side setup.