LogoLogo
日本語
日本語
  • Diarkis ヘルプセンター
  • Diarkis の概要
  • 始めよう
    • Diarkis サーバーテンプレート
    • Diarkis クライアント SDK
    • チュートリアル
      • 1. Diarkis サーバーをローカル環境で起動する
      • 2. テストクライアントで疎通確認する
      • 3. カスタムコマンドを実装する
      • Diarkis クライアントからサーバに接続する
    • サンプル
  • Diarkis のモジュール
    • Room モジュール
      • Room モジュールをサーバーでセットアップする
      • Room サンプル
        • room_broadcast
      • Room モジュールをクライアントから利用する
      • Room のその他の機能
    • MatchMaker モジュール
      • MatchMaker モジュールをサーバーでセットアップする
    • Field モジュール
      • Field モジュールをサーバーでセットアップする
    • P2P モジュール
      • P2P モジュールをサーバーでセットアップする
      • P2P サンプル
    • DM (Direct Message) モジュール
      • DM モジュールをサーバーでセットアップする
    • Notifier モジュール
      • Notifier モジュールをサーバーでセットアップする
    • Session モジュール
      • Session モジュールをサーバーでセットアップする
    • Group モジュール
      • Group モジュールをサーバーでセットアップする
  • Diarkis サーバー
    • Diarkis サーバをクラウド環境で起動する
      • AWS
    • Diarkis サーバーを Windows 環境で起動する
    • MARS サーバー
    • UDP サーバー
    • TCP サーバー
    • HTTP サーバー
    • Metrics API
    • サーバー間通信 - Mesh
  • Diarkis クライアント
    • ランタイム・ライブラリ
      • Diarkis RUDP
    • Diarkis Module
      • Diarkis Module の初期化と終了
      • Diarkis Module のカスタイマイズ
      • Diarkis Module のロギング・システム
      • マイグレーション
      • Diarkis のスレッド
    • サンプル
      • C++
        • room_broadcast
        • directmessage_simple
        • group_sample
        • matching_and_turn
        • matchmaker_ticker
        • p2p_rudp_sample
        • session_simple
      • Unreal Engine Plugin
        • FieldWalker
      • Unity Plugin
        • FieldWalker
          • HowToReplicatePosition.md
  • Diarkis ツール
    • Diarkis CLI
      • cgo を利用するプロジェクトをビルドする方法
      • Diarkis CLI v3 への切り替え手順
  • リファレンス
    • API リファレンス
    • リリースノート
      • v1.0
      • v1.0.1
      • v1.0.2
      • v1.0.3
      • v1.0.4
      • v1.0.5
      • v1.0.6
  • サポート
    • ライセンスと購入
GitBook提供
このページ内

役に立ちましたか?

  1. Diarkis クライアント
  2. Diarkis Module

Diarkis のスレッド

Diarkis クライアントで使用するスレッドについて説明します。

前へマイグレーション次へサンプル

最終更新 9 か月前

役に立ちましたか?

本ページでは Diarkis で使用するスレッドについて説明します。 Diarkis Module のスレッドは、DiarkisInterfaceBase::DiarkisInit() の初期化の中で 作成 されます。IDiarkisTransport::Connect() を呼び出した際に UDP/TCP/P2P のスレッドが 作成 されます。接続する Diaskis サーバに合わせて ランタイムライブラリのスレッドが増えます。

  • ランタイム・ライブラリ

    • UDP サーバー接続時は、以下の2つが作成されます。

      • Send Thread : Send Pedding Buffer に溜まったパケットを送信するためのスレッドです。

      • Recive Thread : Socket で受信したパケットから Event Scheduler に Event を push するためのスレッドです。

    • TCP サーバー接続時は、以下の1つが作成されます。

      • Network Thread : パケットの Send と Recive するための スレッドです。

    • P2P 接続時は、接続相手毎に以下が作成されます。

      • Holepunch Thread : ホールパンチする際にするために一時的に作成されるスレッドです。

  • Diarkis Module

    • Runtime Thread : Diarkis サーバからの 応答 / 通知イベントを呼び出すためのスレッドです。

    • Logger Backend Thread : Diarkis のログ・バッファリングして処理するためのスレッドです。

UDP 接続時の スレッドのシーケンス図

必要に応じて Diakis サーバーの複数用意する場合

例えば、マッチング用と TURN 用の UDP サーバを用意する場合は、DiarkisInterfaceBase のインスタンスをサーバー分の2つ用意する必要がありますので、ランタイム・ライブラリのスレッドは (Send Thread と Recive Thread )x 2 の 計 4 つのスレッドが作成されることになります。

上記の場合でも Diarkis Module の スレッド (Runtime Thread と Logger Backend)は1つずつに作成されるだけなので、計 マッチング用 x 2 TURN 用 x2 Diarkis Module x2 の 6つになり、 P2P 接続する際は接続相手毎に一時的にスレッドが作成されます。