# 用語集

## クライアント

クライアントは Sora と WebSocket や WebRTC で接続しているものを指し、各接続にはユニークな ID が与えられます。

1. **1 接続 1 クライアントの原則**:- Sora における各接続はそれぞれ別個のクライアントとして扱われます。つまり、1 つの接続は 1 つのクライアントとして扱われます
2. **ユニークな ID であるコネクション ID の割り当て**:- クライアントが Sora に接続すると、その接続には固有の ID (コネクション ID) が割り当てられます
3. **複数クライアントのサポート**:- SDK を利用することで、ユーザーは複数のクライアントを使用し、複数の接続を確立することができます
4. **同一ユーザーによる接続の統合**:- 同じユーザーが複数の接続を行う場合、これらの接続に同じクライアント ID を指定することで、ユーザーを一意に識別できます
5. **クライアント ID の自動割り当て**:- クライアント ID を指定しない場合、 Sora はコネクション ID をクライアント ID として自動的に割り当てます

## チャネル

チャネルは Sora で使用される「ルーム」や「グループ」として機能する、独立したコミュニケーションのスペースです。

1. **コミュニケーションの制限**:- チャネルに接続したクライアントは、そのチャネル内でのみ音声、映像、データのやりとりができます。異なるチャネルのクライアント間での直接のコミュニケーションはできません
2. **複数チャネルへのアクセス**:- 一つのウェブブラウザを使用して、複数のクライアントが同時に複数のチャネルにアクセスすることができます
3. **チャネル ID**:- 利用者はチャネルに 255 バイトまでの値を ID として指定できます

## セッション

セッションは実際にチャネルに参加しているクライアントの集まりを指し、各セッションにはユニークな ID が与えられます。

1. **セッションの存在**:- チャネルに 1 つ以上のクライアントが接続している状態を「セッションが存在する」と言い、逆にクライアントが 1 人も接続していない場合は「セッションが存在しない」と言います
2. **セッションの生成**:- セッションは、セッションがまだ存在しないチャネルにクライアントが接続した時に生成されます。
3. **セッションの破棄**:- 全てのクライアントがチャネルから切断した後、一定期間が経過するとセッションは破棄されます。
4. **セッション ID**:- セッションには Sora が自動で生成する一意の ID が割り当てられます

## コネクション

コネクションはクライアントが接続している状態を指し、各コネクションにはユニークな ID が与えられます。

1. **コネクションの生成**:- クライアントが接続し、認証に成功した後、WebRTC が確立されるとコネクションが生成されます
2. **コネクションの破棄**:- クライアントが切断すると、そのコネクションは破棄されます
3. **コネクション ID の自動割り当て**:- コネクションには Sora が自動で生成する一意の ID が割り当てられます

## ロール

Sora のロールは、クライアントが音声や映像をどのように取り扱うかを決定する役割を果たします。

1. **sendrecv (送受信)**:- sendrecv ロールを選択したクライアントは、音声および映像の送受信ができます。これは、クライアントが他のクライアントと音声や映像を交換する、双方向のコミュニケーションができる状態を意味します
2. **sendonly (送信のみ)**:- sendonly ロールを選択したクライアントは、音声および映像の送信のみができます。これは、自分の音声や映像を他のクライアントに送ることはできますが、他からの音声や映像を受け取ることはできない状態を意味します
3. **recvonly (受信のみ)**:- recvonly ロールを選択したクライアントは、音声および映像の受信のみができます。これは、他のクライアントからの音声や映像は受け取ることができますが、自分から送ることはできない状態を意味します
4. **ロールの選択タイミング**:- クライアントは接続時にのみロールを選択できます。一度選択されたロールは、その後の接続中に変更することはできません
5. **ロールとメッセージング機能の独立性**:- ロールの選択は Sora のメッセージング機能には影響しません。メッセージング機能の方向性（送信、受信、またはその両方）については、別の項目「direction」で管理されます
