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