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.6a0.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.6a0-py2.py3-none-any.whl (33.1 kB view details)

Uploaded Python 2Python 3

File details

Details for the file lomond-0.2.6a0.tar.gz.

File metadata

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

File hashes

Hashes for lomond-0.2.6a0.tar.gz
Algorithm Hash digest
SHA256 a2b8b05d3ee1a18a7bb6927f60d9835401f4d59de14fa20e48b61d2ab4d488d8
MD5 e6da8fe6ec42517fe5d770ab4dd65ddc
BLAKE2b-256 5f643fc78e95d110ee821c8594c870df1b95e6f60e0fe8c500f965ec02cc80dd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lomond-0.2.6a0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 e46f155cd1420e01e38b6bc973f55c72c8f38a769a9306d9a59f766c63a472b4
MD5 7a24ea6d7fab6fbaf316dbc861e7e29f
BLAKE2b-256 78f4647998d3e02b6b88b87a5dac05ae88377f969b0638203cf94b433e793478

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