- Add colored navigation buttons (purple Random, red Directory, yellow Search, green Themes) - Implement autocomplete in search with SVG icons and keyboard navigation - Add search term highlighting in results and autocomplete - Include SVG icons in search results - Add theme descriptions with collapsible article lists - Improve archive title and navigation visibility - Clean up Flask-Sockets essay code formatting - Move sort toggle below navigation on archive pages - Add /api/blog endpoint for autocomplete data 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
2.0 KiB
Introducing Flask-Sockets
January 2013
The state of WebSockets in Python is unfortunate — there's no obvious way to do it. Twisted + Autobhan? Node.js + HAProxy? Diesel.io? Nothing feels right. Let's create a WebSocket echo endpoint.
from flask import Flask
from flask_sockets import Sockets
app = Flask(__name__)
sockets = Sockets(app)
@sockets.route('/echo')
def echo_socket(ws):
while True:
message = ws.receive()
ws.send(message)
@app.route('/')
def hello():
return 'Hello World!'
Serving WebSockets in Python was really difficult. Now it's not.
I'm going to use the shit out of this. — Randall Degges
This looks absolutely incredible. — Glenn Siegman
How do you install this in node? — Nick Hudkins
You are a golden god, sir. — Jeremy Bowers
*foams at the mouth* — Kyle Conroy
Installation & Deployment
Flask-Sockets is an easy to install Flask extension:
$ pip install Flask-Sockets
Production services are provided by gevent and gevent-websocket. Anything that inserts wsgi.websocket into the WSGI environ is supported, but gevent-websocket is recommended.
A custom Gunicorn worker is included to make deployment as friendly as possible:
$ gunicorn -k flask_sockets.worker hello:app
Everything else is taken care of for you.
Moving Forward
If you'd like to help bring this library to the next level, fork it and send a pull request!
