Skip to main content

A tornado MSTP library, using WebSocket.

Project description

Tornado MSTP

A tornado MSTP library, using WebSocket.

Installation

pip install tornado_mstp

Easy Examples

See repo's directory named 'examples'.

Usage

Server

As a server-side application using tornado_mstp. You should first create a handler class inherited from MstpSocketHandler:

from tornado_mstp import MstpSocketHandler


class MyMstpSocketHandler(MstpSocketHandler):
    pass

There are two optional class attributes, automatic_closing_time(default to 10) and ver(default to "0.1"), that indicate MSTP server information need to be set.

from tornado_mstp import MstpSocketHandler


class MyMstpSocketHandler(MstpSocketHandler):
    automatic_closing_time = 15
    ver = "0.1"

There is no need to worry about tornado websocket handler's on_message method. Each MSTP package type of message has a callback function who needs to be implemented. For example, for segment handling:

from typing import Optional

from tornado_mstp import MstpSocketHandler
from tornado_mstp.schema import ContentType


class MyMstpSocketHandler(MstpSocketHandler):
    automatic_closing_time = 15
    ver = "0.1"

    async def handle_segment(
        self,
        package_id: Optional[str] = None,
        message_index: Optional[int] = None,
        segment_index: Optional[int] = None,
        is_end: Optional[bool] = None,
        content_type: Optional[ContentType] = None,
        content: Optional[str] = None
    ) -> None:
        print(f"received content: {content}")

After implementing all callback functions, server can handle any MSTP packages as you want.

Client

As a client-side connection using tornado_mstp. You can just create an mstpsocket_connect using tornado_mstp.mstpsocket_connect. It has the same usage of tornado.websocket.websocket_connect.

import asyncio
from tornado_mstp import mstpsocket_connect


def callback(message):
    print(message)


async def main():
    conn = mstpsocket_connect(
        url="mstp://other-mstp-server",
        on_message_callback=callback
    )
    await conn


if __name__ == '__main__':
    asyncio.run(main())

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

tornado_mstp-0.1.0.tar.gz (4.3 kB view details)

Uploaded Source

Built Distribution

tornado_mstp-0.1.0-py3-none-any.whl (5.7 kB view details)

Uploaded Python 3

File details

Details for the file tornado_mstp-0.1.0.tar.gz.

File metadata

  • Download URL: tornado_mstp-0.1.0.tar.gz
  • Upload date:
  • Size: 4.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.2

File hashes

Hashes for tornado_mstp-0.1.0.tar.gz
Algorithm Hash digest
SHA256 6803c808a73bd3dd089324c0af0d7b1b497e61ee691f33d0e7ef6175cec0f819
MD5 d41cbf3824b1c354ead28e009f49f61a
BLAKE2b-256 953214283bc98a36108d2a98289c500b2789119eec2304d7d37ffbd8d8387ede

See more details on using hashes here.

File details

Details for the file tornado_mstp-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for tornado_mstp-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 cf26d9c71dcd7bee0cf510b602ea45f1f64d0506d8d03c54322be2d2d3ec4550
MD5 e573b017bb90d2e4bdc5ee7c10b2396a
BLAKE2b-256 74b864985795aa73a39de95037d117e33e4f18153389eaddb99cf8f1f4398043

See more details on using hashes here.

Supported by

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