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
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