/ClankBundle

A Symfony2 Bundle for use with Ratchet WebSocket Server

Primary LanguagePHPMIT LicenseMIT

ClankBundle

About

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

Resources

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

<?php
// 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
assetic:
    ...
    bundles:        [ JDareClankBundle ]

###Step 4: Configure WebSocket Server

Add the following to your app/config.yml

# Clank Configuration
clank:
    web_socket_server:
        port: 8080        #The port the socket server will listen on
        host: 127.0.0.1   #(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.