Skip to content

箱庭システムのWebサーバー要件 #56

@tmori

Description

@tmori

箱庭システムのWebサーバー要件

要件1: Webサーバーの作成

  • 目的: クライアントと通信するためのWebサーバーを構築する。
  • 機能:
    • サーバーが起動すると、クライアントが接続できるWebSocketサーバーを立ち上げる。

要件2: 公開PDU定義ファイルの参照と準備

  • 目的: サーバー起動時に、PDU定義ファイルを読み込み、通信に必要な設定やデータを準備する。
  • 機能:
    • PDU定義ファイルには、送受信するデータの構造や許可された操作が記述されている。
    • サーバーはこの定義に基づいて、必要なリソースやメモリを確保する。

要件3: クライアントからのWebSocket接続要求の処理

  • 目的: クライアントからの接続要求を受け付け、適切に対応する。
  • 機能:
    • クライアントが接続を要求した場合、サーバーは接続を確立し、PDU定義に基づいてデータの送受信を管理する。

要件4: 公開PDUデータの送信

  • 目的: クライアントに対して、共有メモリから読み込んだPDUデータを定義された周期で送信する。
  • 機能:
    • 共有メモリから必要なデータを読み込み、PDU定義に基づいた周期でクライアントに送信する。

要件5: クライアントからのPDUデータ送信と処理

  • 目的: クライアントが許可されたPDUデータをサーバーに送信し、サーバーがそれを共有メモリに書き込む。
  • 機能:
    • サーバーはクライアントからのPDUデータを受信し、それを箱庭システムの共有メモリに書き込む。

要件6: クライアントによる接続終了

  • 目的: クライアントが接続を終了したい場合に、正常に接続を終了させる。
  • 機能:
    • クライアントはWebSocketのクローズフレームを送信し、接続を終了する。
    • サーバーは接続がクローズされたことを検知し、対応するデータを適切に処理する。

要件7: クローズ後のデータパージ

  • 目的: クライアントが接続を終了した後、そのクライアントに関連するデータをサーバーから削除する。
  • 機能:
    • クライアントが接続を終了した際、そのクライアントに関するデータをパージ(削除)し、リソースを解放する。

要件8: クライアントからのデータリクエストへの応答

  • 目的: クライアントがPDUデータをリクエストした場合に、公開許可されたPDUデータをJSON形式で通知する。
  • 機能:
    • クライアントがデータをリクエストした際、サーバーは共有メモリから該当データを取得し、JSON形式でクライアントに送信する。

確認点と補足

  • リソース管理: 共有メモリの読み書きやクライアントごとのデータ管理において、パフォーマンスやリソースの効率的な利用が重要です。
  • エラーハンドリング: 接続の途中でエラーが発生した場合や、クライアントからの無効なリクエストに対してどのように対処するかを考慮します。
  • セキュリティ: クライアントの認証やデータの暗号化など、通信の安全性を確保するためのセキュリティ対策が必要かどうかを検討します。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions