This document is about: SERVER 4
SWITCH TO

App and Lobby Stats

Photon伺服器可以向客戶廣播應用程序和大廳的統計數據。
您可以利用這些數據來執行一個復雜的自定義匹配系統。
您也可以在您的游戲中炫耀這些統計數據,以顯示您的歡迎程度。:]

程式統計

當連接到Photon主伺服器時,Photon客戶端會收到程式統計。
不管客戶端是否加入了大廳,它都會收到程式統計事件。
程式統計是按區域進行的。

程式統計是:

  • 實時房間的數量:

    C#

    loadBalancingClient.RoomsCount
    

    C++

    Client::getCountGamesRunning()
    
  • 未加入房間的玩家數量:

    C#

    loadBalancingClient.PlayersOnMasterCount
    

    C++

    Client::getCountPlayersOnline() - Client::getCountPlayersIngame()
    
  • 房間裡的玩家數量:

    C#

    loadBalancingClient.PlayersInRoomsCount
    

    C++

    Client::getCountPlayersIngame()
    
  • 連接的玩家總數:

    C#

    loadBalancingClient.PlayersOnMasterCount + loadBalancingClient.PlayersInRoomsCount
    

    C++

    Client::getCountPlayersOnline()
    

    AppStats事件每五秒就會被發送到客戶端。

    在本地C++ SDK中,類別 Listener每次都提供一個回調,以了解統計數據的獲取器被更新。

    C++

    virtual void onAppStatsUpdate(void) {}
    

大廳統計

如果一個遊戲使用了多個大廳,並且您想顯示活動情況,那麼大廳統計就會很有用。
每一個類型的大廳(名稱+時間)都有統計。

每一個輸入的大廳(名稱+類型),您可以得到以下信息。

  • 實時房間的數量
  • 加入大廳或加入大廳房間的玩家總數

自動獲取大廳統計信息

大廳統計事件在客戶端被認証到主伺服器後立即發送。
然後每分鐘發送一次。
大廳統計事件在默認情況下是禁用的。

  • C#

    在連接之前,要啟用大廳統計。

    C#

    loadBalancingClient.EnableLobbyStatistics = true;
    

    大廳統計數據會被更新和緩存,您可以通過以下方式獲取:

    C#

    loadBalancingClient.LobbyStatistics
    
  • C++

    要啟用大廳統計,必須將參數 autoLobbyStats傳給 Client類別的構造函數為true:

    C++

    Client(LoadBalancing::Listener& listener, const Common::JString& applicationID, const Common::JString& appVersion, nByte connectionProtocol=Photon::ConnectionProtocol::DEFAULT, bool autoLobbyStats=false, nByte regionSelectionMode=RegionSelectionMode::DEFAULT);
    

    Listener 類別提供了以下可選的回調,每當有大廳統計事件到來(當啟用時):

    C++

    virtual void onLobbyStatsUpdate(const Common::JVector<LobbyStatsResponse>& lobbyStats) {}
    

明確獲取大廳統計數據

當沒有加入房間時,您可以使用操作調用顯式地請求大廳的統計數據:

  • C#

    目前沒有執行這個功能。

  • C++

    C++

    Client::opLobbyStats()
    

    當回應到達時,Listener類別提供了以下可選的回調:

    C++

    virtual void onLobbyStatsResponse(const Common::JVector<LobbyStatsResponse>& lobbyStats) {}
    

Photon伺服器配置

您可以配置LobbyStats事件向客戶端發送的頻率。
要做到這一點,請在Photon主伺服器應用程序的配置文件中改變 "LobbyStatsPublishInterval "的值。
使用的單位是秒。

XML

<Photon.LoadBalancing.MasterServer.MasterServerSettings>
    <setting name="LobbyStatsPublishInterval" serializeAs="String">
        <value>120</value>
    </setting>
</Photon.LoadBalancing.MasterServer.MasterServerSettings>

還有一個可選的設置是限制伺服器返回的統計數據的數量。
要做到這一點,請在Photon主伺服器應用程序的配置文件中改變 "LobbyStatsLimit "的值。
如果沒有配置或設置為零,則不會應用任何限制。任何其他的正整數將設置允許的最大大廳數量。

XML

<Photon.LoadBalancing.MasterServer.MasterServerSettings>
    <setting name="LobbyStatsLimit" serializeAs="String">
        <value>0</value>
    </setting>
</Photon.LoadBalancing.MasterServer.MasterServerSettings>
Back to top