Skip to main content

flaskws3

BIG NOTE: the code is broken for some reason.

Actually good WebSocket for Flask.

Keep in mind that this is just a patched version of this Python 2 original; no changes were made, so original docs are still valid.

For convenience, the module name didn't change too.

Usage

Info is mostly taken from the original docs.

Here's some starting code for this mini tutor:

import flaskws

app = Flask(__name__)
app.wsgi_app = flaskws.WsMiddleware(app.wsgi_app)

Splitted path!

Method #1

For this method, simply create a class for your WebSocket server.

@app.route("/ws/<int:some_id>")
@flaskws.ws_server
class SampleServer():
	def __init__(self, ws_sock, **req_args):
		self.ws_sock = ws_sock
		print(req_args["some_id"])
	def on_open(self, ws_sock): pass
	def on_message(self, ws_sock, frame):
		fin, op, payload = frame # TODO: Search around code to find what info lurks in `frame`.
	def on_close(self, ws_sock): pass

Method #2

This method uses a function. A little harder to control than Method #1, but no one says you can't pick this one!..

@app.route("/ws/<int:some_id>")
@flaskws.ws_server_view
def echo_server(ws_sock, some_id=None):
	while True:
		frame = ws_sock.recv(timeout=5.0)
		if frame:
			fin, op, msg = frame
			if msg:
				ws_sock.send(msg)
				if msg == "close": # Likely a module-implemented way of closing??
					break

Client

As in the unpatched version, there's also a client. The client wasn't changed in any way. Still no SSL support though...

Here's some sample code for you:

from flaskws import ws_connect

with ws_connect("ws://example.com/wsgateway/") as ws: # Could be used as a class too, just remember to `close()`!!
	if ws.handshake():
		ws.send("somethingsomething")
		for frame in c:
			print(frame)

Metadata

Release files for flaskws3 3.0.4.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for flaskws3 3.0.4.1
File Size Uploaded
flaskws3-3.0.4.1.tar.gz 13.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for flaskws3 3.0.4.1
File Interpreter ABI Platform
flaskws3-3.0.4.1-py3-none-any.whl Python 3 none any Details

Total release size: 30.9 kB

Release files / flaskws3-3.0.4.1.tar.gz

Download URL flaskws3-3.0.4.1.tar.gz
Size 13.9 kB
Tags Source
SHA-256 checksum
How to use checksums
e39f77404e229d1d2db360ddf472dd6322a6f5e5dacc5db71db24623e1e2632a
BLAKE2b-256 checksum
How to use checksums
f167f1936e5b1a217a6e76dd9c160f55571fc86dee899e7e46ef72bde13942bd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.11.2

Release files / flaskws3-3.0.4.1-py3-none-any.whl

Download URL flaskws3-3.0.4.1-py3-none-any.whl
Size 17.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
ba6046fccf9350729a074b4dec64e7ee22bcbc8142ac7516643e098a9f2bf9b4
BLAKE2b-256 checksum
How to use checksums
baa02332cb2199a1eebc93b1b8828975d9f5a66ad0b87e4a536e4b62bd1c1f87
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.11.2

Release history Release notifications | RSS feed

This release

3.0.4.1 This release

2 release files

3.0.4

2 release files

3.0.3

2 release files

3.0.2

2 release files

3.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page