Version: 5.4

NetworkConnection

class in UnityEngine.Networking

マニュアルに切り替える

説明

高レベルネットワーク接続です。クライアントからサーバー、サーバーからクライアントの両方の接続に使用されます。

A NetworkConnection corresponds to a specific connection for a host in the transport layer. It has a connectionId that is assigned by the transport layer and passed to the Initialize function.

NetworkClient には 1 つの NetworkConnection があります。NetworkServerSimple によって複数の NetworkConnections が管理されています。NetworkServer には複数の "遠隔" 接続と、ローカルクライアントのための 1 つの "ローカル" 接続があります。

NetworkConnection クラスにはメッセージの送信と処理機能が備えられています。ネットワーク経由の送信データのためには、メッセージオブジェクト、バイト配列、NetworkWriter オブジェクトを送信するメソッドがあります。ネットワークからの受信データに対応するためには、メッセージ ID にハンドラ関数を登録し、 HandleBytes() でバイト配列を処理し、HandleReader() で NetworkReader オブジェクトを処理することができます。

NetworkConnection オブジェクトはネットワークされたオブジェクトの監視役としても働きます。ある接続が NetworkIdentity を持つ ネットワークされたオブジェクトの監視役である場合、オブジェクトは紐づけられた接続のクライアントから見ることができ、インクリメンタルな状態の変更はクライアントに送信されます。

NetworkConnection オブジェクトはネットワークゲームオブジェクトを「所有する」ことができます。所有されるオブジェクトは、接続が削除されるとき、デフォルトではサーバー側で削除されます。接続は、クライアントによって作成されたプレイヤーオブジェクトと、関連するクライアントに割り当てられたクライアント承認をもつ他のオブジェクトを所有します。

NetworkConnection には、その挙動をカスタマイズするための多くの仮想関数があります。 NetworkClient と NetworkServer は両方とも、networkConnectionClass のメンバー変数を設定することにより NetworkConnection から派生したカスタムクラスをインスタンス化するために作られています。

変数

address接続に伴う IP アドレス
clientOwnedObjectslocalPlayerAutority 設定があり、ローカルの権限でオブジェクトを生み出したか AssignLocalAuthority を設定した場合、 これには接続のためのプレーヤーオブジェクトが含まれます。このリストは読み取り専用です。
connectionIdtransport レイヤーに指定された接続のユニークな識別子
hostIdこの接続のトランスポートレベルのホスト ID
isConnected接続がリモートエンドポイントに接続されている場合は True 。
isReadyクライアントが NetworkClient.Ready() を呼び出すことによって接続が「読み込み可能(ready)」 としてマークされた場合に伝えるフラグ
lastMessageTimeこの接続で受信された最新のメッセージ
logNetworkMessagesTrue に設定するとコンソールにネットワークメッセージの内容が記録されます。
playerControllersこのコネクションのプレイヤー一覧
Networking.NetworkConnectionTrue に設定するとコンソールにネットワークパケットの内容が記録されます。

Public 関数

CheckHandlerこの関数はメッセージ ID の登録されているメッセージハンドラーがあるかチェックします。
Disconnectこの接続を切断します。
Dispose接続を保持しているチャンネルバッファを解除して、切断します。
FlushChannelsこれによりトランスポートレイヤーにデータをフラッシュするネットワーク接続のチャンネル
GetStatsIn入ってくるトラフィックの統計情報を取得します。
GetStatsOut出ていくトラフィックの統計情報を取得します。
Initializeこれは、チャンネルバッファを含む NetworkConnection オブジェクトの内部のデータ構造を初期化します。
InvokeHandlerこの関数はメッセージを登録されているハンドラー関数を呼び出します。
InvokeHandlerNoDataこの関数はメッセージデータなしで登録されているハンドラー関数のメッセージを呼び出します。
RegisterHandlerメッセージ ID のハンドラー関数を登録します。
ResetStatsNetworkClient.GetConnectionStats() から返された統計値をリセットします。
Send接続のメッセージ ID とネットワークメッセージを送信します。このメッセージはチャンネル 0 に送信します。デフォルトでは信頼性の高いチャンネルです。
SendByChannel特定のトランスポートレイヤーのチャンネルを使用して接続時にネットワークメッセージを送信します。
SendBytesこれは、接続上で byte 配列で送信します。
SendUnreliable接続のメッセージ ID を持つネットワークメッセージを送信します。このメッセージはチャンネル 1 に送信します。デフォルトでは信頼性の低いチャンネルです。
SendWriterこれは、接続上で NetworkWriter オブジェクトのコンテンツを送信します。
SetChannelOptionこれは、ネットワークのチャンネルに関するオプションを設定します。
SetMaxDelay最大時間(単位:秒)で、メッセージは送信する前にバッファされます。
ToStringNetworkConnection オブジェクトのステートを文字列形式で返します。
TransportRecieveこの仮想関数はアプリケーションに渡される前にカスタムのネットワーク接続クラスがネットワークからのデータを処理するのを許可します。
TransportSendこの仮想関数はネットワークトランスポートレイヤーに行く前にカスタムのネットワーク接続クラスがアプリケーションによって送信されたデータを処理するを許可します。
UnregisterHandlerメッセージ ID に登録されているハンドラーを削除します。

Protected 関数

HandleBytesバッファーに含まれているデータを接続処理し、ハンドラー関数を呼び出します。
HandleReaderストリームに含まれているデータを接続処理し、ハンドラー関数を呼び出します。