Skip to main content

Engine.IO server

Project description

https://travis-ci.org/miguelgrinberg/python-engineio.svg?branch=master

Python implementation of the Engine.IO realtime server.

Features

  • Fully compatible with the Javascript engine.io-client library, versions 1.5.0 and up.

  • Compatible with Python 2.7 and Python 3.3+.

  • Supports large number of clients even on modest hardware when used with an asynchronous server based on eventlet or gevent. For development and testing, any WSGI compliant multi-threaded server can be used.

  • Includes a WSGI middleware that integrates Engine.IO traffic with standard WSGI applications.

  • Uses an event-based architecture implemented with decorators that hides the details of the protocol.

  • Implements HTTP long-polling and WebSocket transports.

  • Supports XHR2 and XHR browsers as clients.

  • Supports text and binary messages.

  • Supports gzip and deflate HTTP compression.

  • Configurable CORS responses to avoid cross-origin problems with browsers.

Example

The following application uses the Eventlet asynchronous server, and includes a small Flask application that serves the HTML/Javascript to the client:

import engineio
import eventlet
from flask import Flask, render_template

eio = engineio.Server()
app = Flask(__name__)

@app.route('/')
def index():
    """Serve the client-side application."""
    return render_template('index.html')

@eio.on('connect')
def connect(sid, environ):
    print("connect ", sid)

@eio.on('message')
def message(sid, data):
    print("message ", data)
    eio.send(sid, 'reply')

@eio.on('disconnect')
def disconnect(sid):
    print('disconnect ', sid)

if __name__ == '__main__':
    # wrap Flask application with engineio's middleware
    app = engineio.Middleware(eio, app)

    # deploy as an eventlet WSGI server
    eventlet.wsgi.server(eventlet.listen(('', 8000)), app)

Resources

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

python-engineio-0.8.6.tar.gz (11.9 kB view details)

Uploaded Source

File details

Details for the file python-engineio-0.8.6.tar.gz.

File metadata

File hashes

Hashes for python-engineio-0.8.6.tar.gz
Algorithm Hash digest
SHA256 cdb7381d6ba28d13e02cec61f3d1b254341b784452c629fba524784c0b774363
MD5 622bc4e73289a84e984faacc2f35c4e4
BLAKE2b-256 1173708bc10d36aa86b3817099fff4d5f2202b105f2932318ffe91db0a5b775f

See more details on using hashes here.

Provenance

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page