Skip to main content

Websocket Client Library

Project description

Dataplicity Lomond

Tranquil WebSockets for Python.

PyPI version PyPI Coverage Status CircleCI

Lomond is a Websocket client which turns a websocket connection in to an orderly stream of events. No threads or callbacks necessary.

How to Use

To connect to a "ws:" or "wss:" WebSocket URL, construct a lomond.WebSocket object then iterate over it. This will yield an event object for each step in the connection process and for any data sent by the server.

You will receive a Binary or Text event when the server sends you a message. You may send a message with the send_binary or send_text methods.

Example

The following is a silly example that connects to a websocket server (in this case a public echo server), and sends a string of text every 5 seconds.

from lomond import WebSocket


websocket = WebSocket('wss://echo.websocket.org')

for event in websocket:
    if event.name == 'poll':
        websocket.send_text('Hello, World')
    elif event.name == 'text':
        print(event.text)

Events

A successful websocket connection will result in a series of events such as the following:

┌──────────────────────┐
│      Connecting      │     Contacting server
└──────────────────────┘
           │
           ▼
┌──────────────────────┐     Connected to server (but
│      Connected       │     not yet sent data)
└──────────────────────┘
           │
           ▼
┌──────────────────────┐     Negotiated Websocket
│        Ready         │     handshake
└──────────────────────┘
           │  ┌───────────┐
           │  │           │
           ▼  ▼           │
┌──────────────────────┐  │  Send and receive
│ Binary / Text / Poll │──┘  application data
└──────────────────────┘
           │
           ▼
┌──────────────────────┐     Websocket close
│        Closed        │     handshake
└──────────────────────┘
           │
           ▼
┌──────────────────────┐
│     Disconnected     │     Disconnected TCP/IP
└──────────────────────┘     connection to server

Project details


Download files

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

Source Distribution

lomond-0.2.1.tar.gz (26.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

lomond-0.2.1-py2.py3-none-any.whl (33.2 kB view details)

Uploaded Python 2Python 3

File details

Details for the file lomond-0.2.1.tar.gz.

File metadata

  • Download URL: lomond-0.2.1.tar.gz
  • Upload date:
  • Size: 26.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for lomond-0.2.1.tar.gz
Algorithm Hash digest
SHA256 4a66352cf6484d1073a5e8b3899b33b8f6941af8a92f9e01d1f8e490338fc99f
MD5 c5cb84cb0f45606bc83f3a51b4228121
BLAKE2b-256 3baaab53e254a3ea14ccaa4df3e3d6956dc5e8d726e16824dcbdace8e7b2e368

See more details on using hashes here.

File details

Details for the file lomond-0.2.1-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for lomond-0.2.1-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 630fd7f3b0bc3e2480b1718c6d08b78119431912ac8ae4e76f76a043b2a086d0
MD5 97a63166589c931e60d2dbda858a2ee6
BLAKE2b-256 fd40e00f2352a8cdb981f70c756da408cd7a0da68739cf934199f4925bb3afb3

See more details on using hashes here.

Supported by

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