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 close()[ソース]

コネクションを閉じます。

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コネクション

戻り値の型:

iscp.Conn

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のチャンクはサーバーから配信されません。

戻り値:

ダウンストリーム

戻り値の型:

iscp.Downstream

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) -- アップストリームコール

戻り値:

ダウンストリームリプライコール

戻り値の型:

iscp.DownstreamReplyCall

async send_reply_call(reply_call)[ソース]

E2Eコールのリプライを送信します。

パラメータ:

reply_call (iscp.UpstreamReplyCall) -- アップストリームリプライコール

戻り値:

コールID

戻り値の型:

str

property address

アドレスを取得します。

戻り値:

アドレス

戻り値の型:

str

property encoding

エンコーディング名を取得します。

戻り値:

エンコーディング名

戻り値の型:

iscp.EncodingName

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

トランスポート名を取得します。

戻り値:

トランスポート名

戻り値の型:

iscp.TransportName