Websocket Client Library
Project description
# Dataplicity Lomond
[![PyPI version](https://badge.fury.io/py/fs.svg)](https://pypi.org/project/lomond/)
[![PyPI](https://img.shields.io/pypi/pyversions/lomond.svg)](https://pypi.org/project/lomond/)
Tranquil WebSockets for Python. [Docs](https://lomond.readthedocs.io/)
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 WebSocket URL construct a `WebSocket` object, then iterate over it to generate an orderly sequence of events.
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.
```python
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
```
[![PyPI version](https://badge.fury.io/py/fs.svg)](https://pypi.org/project/lomond/)
[![PyPI](https://img.shields.io/pypi/pyversions/lomond.svg)](https://pypi.org/project/lomond/)
Tranquil WebSockets for Python. [Docs](https://lomond.readthedocs.io/)
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 WebSocket URL construct a `WebSocket` object, then iterate over it to generate an orderly sequence of events.
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.
```python
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
Release history Release notifications | RSS feed
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.1.16a0.tar.gz
(25.7 kB
view hashes)
Built Distribution
Close
Hashes for lomond-0.1.16a0-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | bd2b340ed7f1fa2bcf217493b45ca861d66f128e20bdcac55d7e3afc593e5e70 |
|
MD5 | 6e0fc0aee82e16d4e3885d127d7397b9 |
|
BLAKE2b-256 | aeea6ced4ded241e3a0017bc704ad3d4e73f6b8d61fcce0195118ef386a2831d |