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>