xia_broadcast_fastapi.broadcaster.BroadcasterFastapi

class xia_broadcast_fastapi.broadcaster.BroadcasterFastapi

Bases: Broadcaster

__init__()

Methods

__init__()

accept(websocket)

Accept Event of a websocket event

check_subscriber_acl(doc, acl)

Check if subscriber has right to get the data

disconnect(websocket)

Disconnect the subscriber

document_sent_async(doc, op, seq)

Sending document in async mode

get_fastapi_api(ws_endpoint, logger_class, ...)

Get Websocket Endpoint of Fastapi (root)

get_message_body(doc, data_scope, catalog, ...)

Get message body from document

send_json_async(websocket, content)

Send json message in async mode

send_message_async(websocket, message)

Send message to the target websocket

subscribe(websocket, class_name[, ...])

Subscribe to a connection

subscriber_is_connected(websocket)

Check if the websocket is connected

Attributes

active_connections

Connection library, organized by doc_class

async classmethod accept(websocket)

Accept Event of a websocket event

Parameters

websocket – websocket object

active_connections = {}

Connection library, organized by doc_class

classmethod check_subscriber_acl(doc: Document, acl)

Check if subscriber has right to get the data

Parameters
  • doc – document to control

  • acl – User access List

Returns

True if use has authorization else False

classmethod disconnect(websocket)

Disconnect the subscriber

Parameters

websocket

async classmethod document_sent_async(doc: Document, op: str, seq: str)

Sending document in async mode

Parameters
  • doc – Document object

  • op – Operation Type

  • seq – Create Sequence

classmethod get_fastapi_api(ws_endpoint: str, logger_class: Type[Logger], logger_param: dict, class_list: Optional[list] = None, auth_client=None)

Get Websocket Endpoint of Fastapi (root)

Parameters
  • ws_endpoint – Websocket endpoint path

  • logger_class – The class of logger to pull data from

  • logger_param (dict) – The logger parameter to be passed to logger stream pull function

  • class_list (list) – Predefined accepted class names

  • auth_client – Authorization client. None means no security check

Returns

app object of Fastapi

classmethod get_message_body(doc: Document, data_scope: list, catalog: dict, show_hidden: bool) Optional[dict]

Get message body from document

Parameters
  • doc – Document object holding contents

  • data_scope – data scope

  • catalog – data catalog

  • show_hidden – Should show hidden value or not

Returns

json object if data on the scope else None

async classmethod send_json_async(websocket, content: dict)

Send json message in async mode

Parameters
  • websocket – websocket object

  • content (dict) – dictionary to be jsonify

async classmethod send_message_async(websocket, message: str)

Send message to the target websocket

Parameters
  • websocket – websocket object

  • message (str) – message content

async classmethod subscribe(websocket, class_name: str, data_scope: Optional[list] = None, catalog: Optional[dict] = None, show_hidden: bool = False, start_seq: str = '', acl=None, **kwargs)

Subscribe to a connection

Parameters
  • websocket – websocket object

  • class_name – Document Class Name

  • data_scope – The subset of data to be shown

  • catalog – data to be shown

  • show_hidden – Show hidden data or not

  • start_seq – Not interested on the message before this start sequence

  • acl – User access Control

Comments:
  • Know message to route to which client

  • Know the message content to be sent

classmethod subscriber_is_connected(websocket)

Check if the websocket is connected

Parameters

websocket – websocket object