0
當使用Game Center向其他比賽球員發送數據時,您可以使用GKMatchSendDataReliable
或GKMatchSendDataUnreliable
發送數據。使用可靠模式時,GC是否可以多次接收相同的數據?
我使用GKMatchSendDataReliable
。根據Apple的文檔:
數據連續發送,直到 預期收件人或連接超時成功收到。
如果您可靠地發送數據從A
到B
,我想這B
已經告訴A
「是的,我接收到的數據」。如果B
沒有確認,那麼A
會一直髮送數據,直到B
確認爲止,對吧?
現在假設這樣的場景:
A
發送數據B
接收數據B
必須告訴A
,該數據被成功接收- 然而,
B
需要一段時間才能被能夠發送確認信 A
通知該B
沒有確認,所以發送A
數據再次B
最後發送的確認A
得到確認並停止
- 然而,
在這種情況下,在技術上,A
發送數據兩次,即使第一個包已成功發送。 這是否意味着
-(void)match:(GKMatch *)match didReceiveData:(NSData *)data fromPlayer:(NSString*)playerID
會被調用兩次?
因爲如果是這樣的話,這會對我的遊戲造成潛在的危險,因爲我收到的大部分數據都是戰鬥命令,使得有人可能發生兩次攻擊。我需要實現某種鎖定機制來識別每個數據,以確定它是否已經處理。
您有參考或來源嗎? – Voldemort
經過測試,我是「初級iOS遊戲中心」和「遊戲套件」以及「iOS社交遊戲開始」的作者,這兩本書都深入討論了Game Center的發展。然而,官方文件沒有提到它。 –