session_simple

session_simple サンプル

概要

4 人のユーザーが Session モジュールを使用してメッセージのやり取りを行います。 Session モジュールの特徴についてはこちらのページを参照してください。

ローカル環境でサーバーを起動する

サンプルで使用するサーバーを起動するためのチュートリアルを実施して、ローカル環境で Diarkis サーバーを起動します。

1. Diarkis サーバーをローカル環境で起動する

サンプルの引数

サンプルの起動時には以下の3つのパラメータを指定してください。

session_simple.exe serverAddr UID clientKey

引数
説明

serverAddr

Diarkis サーバのエンドポイントを指定してください

UID

接続するユーザーの ID を任意の文字列で指定してください

clientKey

クライアントキーを任意の文字列で指定してください

起動例:

session_simple.exe 192.168.1.123:7000 1111 AAAA

起動方法

本サンプルは 4 クライアントが既定の UID で接続する前提の実装となっています。起動時は "1111", "2222", "3333", "4444" の UID でサンプルを起動してください。 起動後、"1111" は他のユーザーを招待して Session に参加する形でサンプルが動作しますので "1111" 以外のユーザーを起動後、最後に "1111" を起動してください。

サンプルコード説明

Session を使用する全体的な流れ

  1. Diarkis ランタイムおよび Diarkis Module を初期化し、Diarkis サーバーへ接続します。 詳細については Diarkis モジュール利用の全体的な流れ を参照してください。

  2. セットアップ Session モジュールを初期化します。

  3. Session の作成 DiarkisSessionBase::SendCreate を使用して Session の作成をサーバへリクエストします。DiarkisSessionBase::HasSession を使用して、特定の Session が作成済みかをチェックすることができます。

  4. Session への招待 DiarkisSessionBase::SendInvite を使用して他のユーザーを Session へ招待します。招待するにはユーザーの UID を知っている必要があるため Session 以外の方法で UID を事前に共有する必要があります。本サンプルではすでに共有済みの状態を想定して実装されています。

  5. Session への参加 他のユーザーから招待を受けると DiarkisSessionBase::OnSessionInvite が発火します。 DiarkisSessionBase::OnSessionInvite では引数の DiarkisSessionInviteEventArgs で Session ID と SendInvite に渡されたメッセージを取得することができます。 本サンプルでは DiarkisSessionInviteEventArgs で取得した Session ID を使用して DiarkisSessionBase::SendJoin を実行することで Session に参加しています。 また、Session モジュールでは複数の Session に参加することが可能です。 本サンプルでも全体 Session とチーム Session に見立てて複数の Session に参加しています。

  6. メッセージの送信 Session に参加後、DiarkisSessionBase::SendBroadcast 等メッセージ送信系の API を使用して Session に参加しているメンバーにメッセージを送ることができます。

  7. メッセージの受信 他のユーザーからメッセージを受信すると DiarkisSessionBase::OnSessionBroadcastDiarkisSessionBase::OnSessionMessageTo が発火します。ユーザーは DiarkisSessionBase のこれらのメソッドをオーバーライドすることで受信したデータに対してアプリ固有の処理を実装することができます。

  8. ユーザーのキック DiarkisSessionBase::SendKick を使用することで特定のユーザーを Session から強制的に追い出すことができます。

  9. 切断処理 DiarkisSessionBase::SendLeave を使用することで Session から退出することができます。

  10. 終了処理 詳細については Diarkis モジュール利用の全体的な流れ を参照してください。

最終更新

役に立ちましたか?