Wsocket

Simple WSGI HTTP + Websocket Server, Framework, Middleware And App.

Note: I am a 16 years old student.I have no enough knowledge. So can anyone help me to develop this library?

pageInstallationpageApp

Server

Server(WSGI) creates and listens at the HTTP socket, dispatching the requests to a handler. WSGIRef server but uses threads to handle requests by using the ThreadingMixIn. This is useful to handle web browsers pre opening sockets, on which Server would wait indefinitely.

can used with any WSGI compatible web framework

Middleware

convert any WSGI compatible web framework to Websocket+HTTP framework using middleware.

works with many WSGI compatible servers and any WSGI compatible web framework

Flask, Django, Pyramid, Bottle, ... supported

Handler

wsgiref.simple_server.WSGIRequestHandler like class named WebSocketHandler that always wrap WSGI app using Middleware.

changes from WSGIRequestHandler :

  • Prevents reverse DNS lookups

  • error less logger

  • Inherited from FixedHandler(fixed HTTP handler)

  • uses FixedServerHandler to make it WSGI

You can convert wsgiref to a websocket+HTTP server using this handler

ServerHandler

wsgiref.simple_server.ServerHandler(inherited from wsgiref.handlers.ServerHandler ) like handler named FixedServerHandler .

changes from ServerHandler :

  • set HTTP version to 1.1 because versions below 1.1 are not supported some clients like Firefox.

This is a little hack. report any errors to Issue Tracker

  • removed hop-by-hop headers checker because it raise errors on Upgrade and Connection headers

  • check that all headers are strings

Framework

basic WSGI web application framework that uses Middleware.

  • simple routes handler

  • auto description to status code

  • headers checker

  • send data as soon as possible

  • send strings, bytes, lists(even bytes and strings mixed) or files directly

  • error catcher and error logger

works with many WSGI compatible servers

App

Event based app for websocket communication. this is app that uses Framework if not events handled by developer. this app works like demo(echo) app.

Features

all Middleware, Handler, Framework and App has following features.

  • websocket sub protocol supported

  • websocket message compression supported (works if client asks)

  • receive and send pong and ping messages(with automatic pong sender)

  • receive and send binary or text messages

  • works for messages with or without mask

  • closing messages supported

  • auto and manual close

More

Guide - View Documentaion for examples and API reference.

Report - bugs and ideas on Github issue tracker

License - Code and documentation are available according to the MIT License (see LICENSE).

Last updated