iscp.Conn - コネクションとE2ECallの送受信¶
コネクションを表すクラス¶
- class Conn[ソース]¶
iSCPのコネクションを表すクラスです。
注意
このクラスのオブジェクトは、必ず Conn の connect() を使用して生成してください。
async with await Conn.connect(...) as conn: pass
このコードは以下のコードと等価です。
conn = await Conn.connect(...) try: pass finally: await conn.close()
- async calls(*, timeout=None)[ソース]¶
E2Eコールを受信します。
- パラメータ:
timeout (Optional[float]) -- 読み込みタイムアウト(秒)。指定しない場合はタイムアウトしません。
- 列挙:
iscp.DownstreamCall -- ダウンストリームコール
サンプル
>>> async for call in conn.calls(): pass
- async classmethod connect(address, connector, *, encoding=EncodingName.PROTOBUF, node_id=None, ping_interval=10.0, ping_timeout=1.0, project_uuid=None, token_source=None, disconnected_event_handler=None)[ソース]¶
iSCPブローカーに接続します。
- パラメータ:
address (str) -- 接続先のアドレス。127.0.0.1:8080 形式。
connector (iscp.Connector) -- トランスポートのコネクターです。
encoding (iscp.EncodingName|str) -- エンコーディング名
node_id (Optional[str]) -- ノードID
ping_interval (float) -- Ping間隔(秒)
ping_timeout (float) -- Pingタイムアウト(秒)。タイムアウトが発生した場合トランスポートを切断します。
project_uuid (Optional[UUID | str]) -- プロジェクトUUID
token_source (Optional[iscp.TokenSource]) -- トークンソース。iSCPコネクションを開くたびに、このメソッドをコールしトークンを取得します。
disconnected_event_handler (Optional[iscp.DisconnectedEventHandler]) -- 切断イベントのハンドラ
- 戻り値:
iSCPコネクション
- 戻り値の型:
- async open_downstream(filters, *, data_ids=None, qos=QoS.UNRELIABLE, expiry_interval=1, ack_interval=1, closed_event_handler=None, omit_empty_chunk=False)[ソース]¶
ダウンストリームを開きます。
- パラメータ:
filters (List[iscp.DownstreamFilter]) -- ダウンストリームフィルタのリスト
data_ids (Optional[List[iscp.DataID]]) -- データIDのリスト
qos (iscp.QoS|str) -- QoS
expiry_interval (float) -- 有効期限(秒)
ack_interval (float) -- Ack返却間隔(秒)
closed_event_handler (Optional[iscp.DownstreamClosedEventHandler]) -- ダウンストリームクローズイベントのハンドラ
omit_empty_chunk (bool) -- 空チャンク省略フラグ。Trueにすると空のDataPointGroupのチャンクはサーバーから配信されません。
- 戻り値:
ダウンストリーム
- 戻り値の型:
- async open_upstream(session_id, *, expiry_interval=1, data_ids=None, qos=QoS.UNRELIABLE, ack_interval=1, persist=False, send_data_points_callback=None, receive_ack_callback=None, flush_policy=<iscp._flush_policy.IntervalOrBufferSize object>, close_timeout=1, closed_event_handler=None, close_session=False)[ソース]¶
アップストリームを開きます。
- パラメータ:
session_id (str) -- セッションID
expiry_interval (float) -- 有効期限(秒)
data_ids (Optional[List[iscp.DataID]]) -- データIDのリスト
qos (iscp.QoS|str) -- QoS
ack_interval (float) -- Ack返却間隔(秒)
persist (bool) -- 永続化するかどうか
send_data_points_callback (Optional[iscp.BeforeSendDataPointsCallback]) -- データポイント送信時のフック
receive_ack_callback (Optional[iscp.AfterReceiveAckCallback]) -- Ack受信時のフック
flush_policy (iscp.FlushPolicy) -- データポイントのフラッシュポリシー
close_timeout (float) -- クローズのタイムアウト(秒)
closed_event_handler (Optional[iscp.UpstreamClosedEventHandler]) -- アップストリームクローズイベントのハンドラ
close_session (bool) -- アップストリームクローズ時にセッションをクローズするかどうか
- async reply_calls(*, timeout=None)[ソース]¶
E2Eリプライコールを受信します。
- パラメータ:
timeout (Optional[float]) -- 読み込みタイムアウト(秒)。指定しない場合はタイムアウトしません。
- 列挙:
iscp.DownstreamReplyCall -- ダウンストリームリプライコール
サンプル
>>> async for call in conn.reply_calls(): pass
- async send_base_time(base_time, *, persist=False)[ソース]¶
基準時刻を送信します。
- パラメータ:
base_time (iscp.BaseTime) -- 基準時刻
persist (bool) -- 永続化するかどうか
- async send_call(upstream_call)[ソース]¶
E2Eコールを送信します。
- パラメータ:
upstream_call (iscp.UpstreamCall) -- アップストリームコール
- 戻り値:
コールID
- 戻り値の型:
str
- async send_call_and_wait_reply_call(upstream_call)[ソース]¶
E2Eコールを送信し、リプライコールを受信するまで待ちます。
- パラメータ:
upstream_call (iscp.UpstreamCall) -- アップストリームコール
- 戻り値:
ダウンストリームリプライコール
- 戻り値の型:
- async send_reply_call(reply_call)[ソース]¶
E2Eコールのリプライを送信します。
- パラメータ:
reply_call (iscp.UpstreamReplyCall) -- アップストリームリプライコール
- 戻り値:
コールID
- 戻り値の型:
str
- property address¶
アドレスを取得します。
- 戻り値:
アドレス
- 戻り値の型:
str
- property encoding¶
エンコーディング名を取得します。
- 戻り値:
エンコーディング名
- 戻り値の型:
- property node_id¶
ノードIDを取得します。
- 戻り値:
ノードID
- 戻り値の型:
Optional[str]
- property ping_interval¶
Ping間隔(秒)を取得します。
- 戻り値:
Ping間隔(秒)
- 戻り値の型:
float
- property ping_timeout¶
Pingタイムアウト(秒)を取得します。
- 戻り値:
Pingタイムアウト(秒)
- 戻り値の型:
float
- property project_uuid¶
プロジェクトUUIDを取得します。
- 戻り値:
プロジェクトUUID
- 戻り値の型:
Optional[UUID]
- property transport¶
トランスポート名を取得します。
- 戻り値:
トランスポート名
- 戻り値の型: