pomeloクイック使用ガイド

4932 ワード

インストール
Windowsシステムの場合は、Windowsシステムにソースコードコンパイルツールが含まれていることを確認してください.Node.jsのソースコードは主にC++コードとJavaScriptコードで構成されているが、Python言語で書かれたgypツールでソースコードのプロジェクト管理を行う.Windowsプラットフォームでは、Node.jsはgypを用いてVisual Studio Solutionファイルを生成し,最終的にはVC++のコンパイラでバイナリファイルにコンパイルする.インストールする前に、Windowsシステムが次の2つの条件を満たしていることを確認してください.
  • Python(2.5
  • VC++コンパイラ.Visual Studio 2010に含める(VC++2010 Expressでも可).
  • npm(nodeパッケージ管理ツール)を使用してpomeloをグローバルにインストールします.
    npm install pomelo-g(apt-getインストールのnodeの場合、g++を個別にインストールする必要がありますが、nodeのバージョンは0.8シリーズを推奨します)
    ソースコードは、コマンドgit clone https://github.com/NetEase/pomelo.gitでダウンロードできます.
    使用方法
    新規プロジェクト
    次の2つの方法で、新しいプロジェクトを作成できます.
    方式一
  • pomelo initコマンド後にプロジェクトパスパラメータを追加:pomelo init ./helloWorld;pomeloコマンドは、ディレクトリhelloWorldを自動的に作成し、プロジェクトを初期化します.

  • 方式2
  • ローカル新規ディレクトリ:
    mkdir helloWorld
  • 新規ディレクトリへ:
    cd helloWorld
  • 初期化項目:
    pomelo init .
  • 依存パッケージのインストール:
    sh npm-install.sh(Windows環境で直接実行されている場合:npm-install.bat)

  • 新しく作成されたプロジェクト構造は、次の図のようになります.
    このディレクトリ構造は,ゲーム項目の前後端階層構造を明確に示しており,各ディレクトリの下に関連コードを記入することで,ゲームを迅速に開発できる.各ディレクトリを簡単に分析します.
    game-server
    Game-serverはpomeloフレームワークで構築されたゲームサーバで、ファイルapp.jsは入り口として、ゲームのすべての論理と機能を実行します.次の開発では,すべてのゲームロジック,機能などのコードがこのディレクトリの下で行われる.
    config
    Configには、ゲームサーバのすべての構成情報が含まれています.コンフィギュレーション情報はJSONファイル形式で定義され、ログ、マスターなどのサーバのコンフィギュレーション情報が含まれています.このディレクトリは、データベース構成情報、地図情報、数値テーブルなどの情報を定義する拡張も可能です.
    logs
    ログはプロジェクトに不可欠であり、プロジェクトの実行状況をよくバックアップすることができ、システムのメンテナンスの参考データの一つでもあります.logsはゲームサーバのすべてのログ情報を格納します.
    shared
    Sharedは前後端、game-serverとweb-serverの共通コードをいくつか格納します.
    web-server
    Web-serverはexpressフレームワークで構築されたwebサーバで、ファイルapp.jsは入口として,もちろん開発者はNginxなど他のウェブサーバを選択できる.
    プロジェクトの開始
    起動項目はgame-server(ゲームサーバ)とweb-server(webサーバ)をそれぞれ起動する必要があります.
    game-serverサーバの起動:>pomelo start[development|production][--daemon]
    Webサーバの起動:>cd Webサーバ&&node app
    異なる環境で実行するには、プロジェクトの起動方法が少し異なり、開発環境であればdevelopmentパラメータ(デフォルト値、記入なし)を選択し、製品環境であればproductionパラメータ(複数のサーバにまたがるssh agent forwardをサポートする必要がある)を選択する必要があります.プロジェクトのデフォルトはフロントで実行し、プロジェクトをバックグラウンドで実行するには、パラメータ「--daemon」を選択します.
    daemonモード実行プロジェクトはforeverモジュールをインストールする必要があり、インストールコマンド:npm install forever -gプロジェクトを起動したら、websocketをサポートするブラウザ(chromeの使用を推奨)でアクセスします.http://localhost:3001またはhttp://127.0.0.1:3001できます.
    サーバーステータスの表示
    「pomelo list」コマンドを使用して、次の図に示すように、各サーバのステータスを表示します.
    サーバのステータスには、次の6つのステータス情報が表示されます.
  • serverId:サーバのserverId、config構成テーブルのid.
  • serverType:サーバのserverType、config構成テーブルのtype.
  • pid:サーバに対応するプロセスpid.
  • headUsed:サーバがすでに使用しているスタックサイズ(単位:メガ).
  • uptime:サーバーの起動時間(単位:分).
  • プロジェクトを閉じる
    アイテムを閉じるには、次の2つの方法があります.
    pomelo stop [id] pomelo stop各サーバを優雅にシャットダウンするには、次のような特徴があります.
  • フロントエンドサーバはまず接続を切断し、新しいプレイヤーがゲームに入るのを阻止し、ユーザー体験が良い.
  • 各サーバは、自身の機能を順番にオフにし、ゲームロジックが正常であることを保証します.
  • プレイヤーの状態などの情報は直ちにデータベースに書き込まれ、データの完全性を保証する.
  • pomelo stop idは、プロジェクトルートディレクトリの下で実行する特定のサーバを閉じます.特定のサーバをシャットダウンすると、サーバのステータス情報などが失われるので、まず、そのサーバのステータス情報のメンテナンスやバックアップなどの作業を行うことをお勧めします.
    pomelo kill [--force]
    この方式はプロジェクトのプロセスを直接killして、比較的に乱暴で、安全性が低くて、開発環境の下で使用することができて、製品環境は慎重に使います.まだ残っているプロセスがきれいでない場合は--forceパラメータを使用します.
    pomelo add host=[host] port=[port] id=[id] serverType=[serverType]
    動的にサーバを追加するには、追加されたパラメータには、サーバipアドレス(host)、サーバポート番号(port)、サーバID(id)、サーバタイプ(serverType)が含まれる必要があります.現在はバックエンドサーバの動的追加のみがサポートされており、このコマンドはプロジェクトのルートディレクトリで使用する必要があります.
    管理コンソール(adminConsole)
    管理コンソールは、ユーザーがプロジェクトの運行状態を監視して興味のある情報を取得し、pomeloプロジェクトと協力して使用するのに便利です.このコンソールWebの形式には、次の機能があります.
  • は、サーバのステータス、ログ、オンラインユーザー、シーンデータなどを監視します.
  • スクリプトを使用して、関連するゲームデータを柔軟に取得します.
  • profilerを使用して、プロジェクト内の各サーバのメモリスタックおよびcpu消費の動的リアルタイム追跡と分析を行います.

  • 管理コンソールはシステムメモリ、cpuなどの情報を収集します.オペレーティングシステム(linux)にsysstatツールセットがインストールされていることを確認してください.コマンドapt-get install sysstatを参照してください.
    管理コンソールのインストール
    git clone https://github.com/NetEase/pomelo-admin-web.git
    cd pomelo-admin-web
    npm install -d
    node app
    linuxシステムにsysstatがインストールされていない場合は、次のコマンドを実行します.
    apt-get install sysstat
    ブラウザでのアクセス:http://localhost:7001を選択すると、管理コンソールのインタフェースが開きます.ポートが競合している場合はconfig/admin.jsonはポートを変更し、アクセスするブラウザはwebsocketをサポートする必要があり、chromeの使用を推奨します.システムのデフォルトは監視を無効にし、必要に応じてgame-server/appをオンにすることができます.jsはappを構成する.Enable('systemMonitor')は、lordofpomeloソースコードを参照できます.
    production環境背景知識
    Production環境では、ゲームサーバの各プロセスがマルチサーバ上で実行されている場合、各サーバはssh agent forwardをサポートする必要があり、プロジェクトはすべてのサーバのディレクトリで一致しています.
    次のドキュメントは、ssh agent forward構成の説明です.
  • Getting Started with SSH
  • What is an SSH Agent
  • How SSH Agent Forwarding Works
  • What are deploy keys?

  • 原文住所:https://github.com/NetEase/pomelo/wiki/pomelo%E5%BF%AB%E9%80%9F%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97