Skip to content
No description or website provided.
Python
Find file
Latest commit d5bf8a9 Oct 28, 2013 @fafhrd91 Merge pull request #24 from invisibleroads/patch-1
Added pyramid_chameleon
Failed to load latest commit information.
docs Use https with git since it works with proxies Aug 27, 2012
examples
pyramid_sockjs Switch info logging to debug Feb 20, 2013
tests upgrade sockjs-protocol-0.3.3 Nov 15, 2012
.gitignore initial import Jan 21, 2012
.travis.yml update travis config Nov 15, 2012
CHANGES.txt Update CHANGES.txt Feb 20, 2013
README.rst update gevent link in readme Jul 23, 2013
setup.cfg initial import Jan 21, 2012
setup.py prepare release Jan 8, 2013

README.rst

pyramid_sockjs

pyramid_sockjs is a gevent-based SockJS integration for Pyramid. SockJS interface is implemented as a pyramid route. pyramid_sockjs runs inside a WSGI application rather than WSGI server. This means all of your previous WSGI/Pyramid experience will be relevant. Its possible to create any number of different sockjs routes, ie /__sockjs__/* or /mycustom-sockjs/*. You can provide different session implementation and management for each sockjs route.

Gevent based server is required for pyramid_sockjs. For example gunicorn with gevent worker. pyramid_sockjs provides simple gevent based paster server runner:

[server:main]
use = egg:pyramid_sockjs#server
host = 0.0.0.0
port = 8080

Example of sockjs route:

def main(global_settings, **settings):
    config = Configurator(settings=settings)
    config.add_sockjs_route(prefix='/__sockjs__')

    return config.make_wsgi_app()

Client side code:

<script src="http://cdn.sockjs.org/sockjs-0.3.4.min.js"></script>
<script>
    var sock = new SockJS('http://localhost:8080/__sockjs__');

    sock.onopen = function() {
      console.log('open');
    };

    sock.onmessage = function(obj) {
      console.log(obj);
    };

    sock.onclose = function() {
      console.log('close');
    };
</script>
https://secure.travis-ci.org/fafhrd91/pyramid_sockjs.png

Installation

  1. Install virtualenv:

    $ wget https://raw.github.com/pypa/virtualenv/master/virtualenv.py
    $ python2.7 ./virtualenv.py --no-site-packages sockjs
    
  2. Install gevent 1.0rc2 (non-Windows):

    $ ./sockjs/bin/pip install https://github.com/surfly/gevent/archive/1.0rc2.tar.gz
    
  1. Install gevent 1.0rc2 (Windows, 32bit Python 2.7):

    $ ./sockjs/Scripts/easy_install https://github.com/downloads/SiteSupport/gevent/gevent-1.0rc2.win32-py2.7.exe
    
  2. Clone pyramid_sockjs from github and then install:

    $ git clone https://github.com/fafhrd91/pyramid_sockjs.git
    $ cd pyramid_sockjs
    $ ../sockjs/bin/python setup.py develop
    

To run chat example use following command:

$ ./sockjs/bin/python ./pyramid_sockjs/examples/chat.py

Supported transports

Limitations

  • Pyramid sockjs does not support multple websocket session with same session id.
  • gevent does not support Python 3
  • Pyramid sockjs can't detect client disconnection on heroku.

Requirements

Examples

You can find several examples in the pyramid_sockjs repository at github.

https://github.com/fafhrd91/pyramid_sockjs/tree/master/examples

License

pyramid_sockjs is offered under the MIT license.

Something went wrong with that request. Please try again.