Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

majacQ/python-engineio

Open more actions menu
 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
25 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

python-engineio

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

About

(Fork) Python Engine.IO server

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 98.7%
  • HTML 1.3%
Morty Proxy This is a proxified and sanitized view of the page, visit original site.