This page is a work in progress and could be pending updates.
Photon 5.0 RC1
本頁列舉了Photon Server SDK v5.0 RC1版本的更改。
曾經使用過v5 BETA SDK的客戶可能會發現它很有用。
如果您有興趣了解Photon 5中的內容,請訪問 新內容頁面.
v5.0 RC1 更改日誌
Photon Hive
修正
- PSCS-4047:
- 計算玩家數量,在創建房間後設置ExpectedUsers的問題。
- 現在可以在一個SetProperties請求中設置MaxPlayers和ExpectedUsers。
更改
- PSCS-4053: 現在MasterClientId在SetProperties、Create和Join- GameRequest中,可以是int或double或byte。
- PSCS-4171: CAS屬性更新的錯誤信息現在盡可能的簡單化。
新增
- 新的房間標誌:
SuppressPlayerInfo (0x40)
:
當它被設置時:- 事件加入和離開不會被發送。 (與
SuppressRoomEvents
相同) - ActorList int[] 從加入/創建操作回應中跳過。
- Actor 屬性從加入/創建操作回應中跳過。
- Actor屬性的變化不會被廣播。房間屬性仍然可以被廣播,客戶可以通過OpGetProperties請求Actor屬性。注意,若UserId不被廣播會使得
PublishUserId
無法使用。
- 事件加入和離開不會被發送。 (與
LoadBalancing
新增
- PSCS-4171: 為幾乎所有的GS操作增加了限制。阻止GS上的主操作。
修正
- PSCS-4047: 現在可以在一個SetProperties請求中設置MaxPlayers和ExpectedUsers。
- PSCS-4158: 修正了由於經斷開連接而導致的空集合。
- PSCS-4112:
- 為主伺服器增加了Limits和Limits.Lobby子部分。
- 增加了遊戲伺服器的限制部分。
更改
PSCS-3129: 更新了HttpRequestQueue錯誤記錄。
PSCS-3317: UseLegacyLobby主服務器設置被刪除。 SDK默認為Lobby v2。
PSCS-4112:
- HttpQueueSettings被移到它自己類別中,並在GameServerSettings、AuthSettings和WebRpcSettings中使用。
- 規範了日誌信息以防止超過某些限制的情況。
- OperationHandlerDefault移至MasterServer命名空間。
- 與MS在GS連接相關的設置被移至S2S部分。配置已更新。
- 與MS在GS連接相關的設置被移至S2S部分。配置已更新。
- 我們將所有入站限制放在入站部分。
- ConnectReytryInterval改名為ConnectRetryInterval。
- WrongWordsForQueryData重命名為SqlQueryBlockList。
- WsUrlPath 重命名為 GamingWsPath。
- MasterServerWsUrlPath 重命名為 MasterServerWsPath,以便與其他類似設置保持同步。
- 更新了配置文件並清理了過時的設置。
- 刪除了GameListLimit設置
- 刪除了NodeReader和所有相關內容:設置和代碼
- 刪除了與reliabel http相關的設置(所有HTTP端口,GamingHttpPath等),我們不再提供http。
- 刪除了配置中未使用的 LastTouchCheckIntervalSeconds 和 PublicDomainName。
- 刪除了AppStatsSendDelay。
PSCS-4159:
PSCS-4164:
PSCS-4170: 限制不使用0作為無限情況。現在它是int.MaxValue。
- 刪除了SetupOperationParameter和SetupOperationLimits的默認值。
- SetupOperation改名為SetupOperationParameter,以更好地反映它的作用。
- 請求參數的大小限制與元數據操作獨立工作。
- WebRpcSettings.HttpCallsLimit不再使用0作為限制。
PSCS-4171:
Photon Hive 插件
新增
- 新的房間標誌:
RoomOptionFlags.SuppressPlayerInfo
。 - 增加了屬性元數據:
Property.KeySize
,Property.ValueSize
與Property.TotalSize
。
元數據處理邏輯也在PropertyBag
中實現。 - PSCS-4169@jira: 缺少插件API的LeaveReason,從ErrorCode值可以作為斷開連接的原因。
更改
- OnSetProperties不會在插件失敗時恢復改變的屬性。
IPluginFiber.CreateOneTimeTimer
第二個參數現在是int
而不是long
。
PhotonSocketServer
新增
- PSCS-2687: 增加了一種安排或延遲斷開連接的方法,將對象的
ConnectionState
設置為ScheduledForDisconnect
,並使服務器能夠在斷開連接前向對象發送DisconnectMessage
。
SendXXXAndDisconnect
得到參數斷開延遲。
默認的斷開延遲是5000毫秒。
對於s2s通信SendOperationRequestAndDisconnect
被添加。 - PSCS-3043: 實現了對
DisconnectMessage
的解析。
S2SPeerBase
得到了對輸入DisconnectMessage
的處理。 - PSCS-3374: 增加了本地調用的計數器。
- PSCS-3851: 增加了一個設置來關閉LogGuard。
- PSCS-3945:
- 增加了Init請求加密驗證
- 增加了對
ClientKey.Count != 0
的檢查。 - 增加了DeffieHellmannKeyExchange的異常處理。
- 斷開對象發送錯誤的內部請求。
- PSCS-3947: 合併了InitV3和
AuthOnInitHandler
的加密初始化代碼。
InitRequest
有新的屬性IsRejected
。當對象被拒絕時,我們將其分配給RejectedPeer
,並發送DisconnectMessage
,而不是InitResponse。我們現在使用RejectWithDelayedResponse
而不是直接設置errorCode和errorMsg。 - PSCS-4096:
- 信息二進制大小增加到50000字節。
- 增加了
JsonParseContext
,通過解析和控製過程攜帶解析信息。 - 通過非網絡套接字對象斷開要求Json協議的對象的連接
- PSCS-4101:
- 作為限制處理改進的一部分,在超過最大長度的情況下記錄被修復。
- 增加了對初始信息不超過最大信息的檢查。
- PSCS-4133: 增加了HTTP響應有效載荷大小的限制。
更改
- PSCS-3253: 計劃行動的間隔從
long
改為int
。 - PSCS-3918:
- 增加了間隔計數器的無鎖版本。
- 增加了讀寫鎖的用法。
- 在安全的地方,
TimeIntervalCounter
被TimeIntervalCounterLF
取代。
- PSCS-3933:
OnDisconnect
回調方法的參數類型從DisconnectReason
枚舉改為int
。
OnDisconnect(DisconnectReason)
現在是OnDisconnect(int)
。
參數值可以是一個特定的斷開原因(0-5,100-105,舊的DisconnectReason
值)或一個錯誤代碼(3XXXX)。OnUnexpectedDataReceived
替換為OnDeserializationError
。 - PSCS-3956: 我們過渡到netcore提供的新配置系統。
- PSCS-4112:
- SocketServer部分被重構為擁有Limits子部分。
- PhotonSettings.OnlyLogLimitsViolations默認設置為假。
- PSCS-4155: 所有IPhotonApplication方法的異常記錄都由try catch覆蓋,並記錄到本地。
- 我們用另一個 try catch 覆蓋了異常記錄,並將其記錄到 unmanagedLog 日誌中,以確保沒有異常洩漏到本地。
- PSCS-4164: 完全刪除對嵌套的OperationRequest、Response和Event數據的支持。
- PSCS-4171: 字典的嵌套級別降低到32級,以避免可能出現的服務器故障和溢出異常。
NameServer
更改
- PSCS-3176: 將CustomAuthProviders集成到NS中 - 刪除了對集成的Customauth提供商Facebook、Steam、Oculus和Viveport的url檢查。
將 "CheckUrl "重命名為 "IsValidUrl"。 - 更新了
MasterServerCache.TryGetPhotonEndpoint
置入,避免引起警告。 - PSCS-3937: 嚴格的自定義認證檢查。當客戶端請求一個未配置的認證提供者時,認證會失敗。
- PSCS-3891: 防止多個認證請求,在3個認證請求後,OperationDenied會被返回。