客戶端應該多久向服務器發送請求? 服務器應該多久向客戶端發送更新?有什麼建議嗎?MMORPG中客戶端/服務器之間的消息速率
1
A
回答
3
在你到達那裏之前,不要擔心這一點。從頻繁的消息開始,然後隨着規模的擴大,如果有必要的話,可以開始減少消息傳遞的頻率(至此,您應該使用分析來確定熱點)。
如果你真的想知道,然後啓動你想要的任何遊戲,並進行測試。另外,很可能大多數大型MMORPG都沒有使用標準的Web請求/響應,並且可能與非常優化的二進制協議直接套接字連接。
但是,這是另一件事,你可以切換到一旦你找出它需要。
2
正如兩位網友指出的,你的問題很模糊。您正在實施的MMO類型以及傳遞的信息非常重要。這就是說,在MMORPG的世界裏,即使在這樣一個位置上只有一個玩家在線時,也需要在客戶端和服務器之間進行很多工作。
首先,您應該避免在客戶端和服務器之間傳輸圖片和音頻。客戶應該已經擁有了它所需要的一切。第二,每當世界發生變化(用戶可以看到)時,服務器就會把它告訴客戶端(新怪物,新玩家,移動,攻擊)。 客戶端所採取的每一個行動都應該通知服務器。
第三,你應該儘量只保留所需的信息。不要多次發送任何東西,避免發送已知的信息(如果有人攻擊,但不要移動,不要發送位置信息,這是多餘的,而且會浪費帶寬和處理時間)。
希望它有幫助!
1
坦率地說,這取決於遊戲的性質。人們認爲往返時間超過0.1s是延遲,往返時間超過1s是一個重大問題。
http://www.useit.com/papers/responsetime.html
您的消息率需要考慮到這一點。但是,如果您能夠建立真正的雙向通信(通用TCP通道就足夠了),它可能甚至不相關。
如果我寫這樣的比賽,我將建立一個25ms的事件收集延遲:
- 基本上,如果一個事件需要傳達,我會再等25毫秒以收集可能結束所有後續事件被集中到同一個網絡數據包中。
- 然後,如果您在同一大陸(寬帶上),接收端的事件收集延遲時間爲25毫秒,網絡延遲爲25毫秒,則網絡延遲時間爲25毫秒。
相關問題
- 1. 發送客戶端 - 服務器之間的消息ID - Java的
- 2. 在客戶端之間轉發消息的UDP服務器
- 3. RStudio和Shiny:服務器和客戶端之間的消息
- 4. 線程服務器,在客戶端之間發送消息
- 5. 消息,從服務器的客戶端
- 6. 客戶端服務器消息加密
- 7. 服務器客戶端消息驗證
- 8. 處理客戶端/服務器消息?
- 9. Tcp客戶端/服務器 - 客戶端消息問題
- 10. Facebook API速率限制 - 服務器端vs客戶端
- 11. Facebook API速率限制 - 服務器端或客戶端更好?
- 12. 如何跟蹤服務器和客戶端之間交換的消息?
- 13. PyQt5:發送和接收客戶端和服務器之間的消息
- 14. 詢問客戶端到客戶端之間傳送消息
- 15. Bayeux客戶端如何停止從Bayeux服務器接收消息?有沒有辦法在客戶端阻止客戶端和服務器之間的通道?
- 16. 客戶端和服務器之間發送/接收文本消息
- 17. GWT - 合併錯誤消息以在服務器和客戶端之間使用
- 18. 快速文本解析器服務器 - 客戶端的消息 - MMO
- 19. 客戶端 - 服務器消息交換 - Java中的套接字
- 20. Java多客戶端服務器不接收來自客戶端的消息?
- 21. 使用Windows Azure的客戶端 - 服務器 - 客戶端消息傳遞
- 22. 估計JSF中客戶端和服務器之間的連接速度頁面
- 23. 在客戶端和服務器通信中加密消息
- 24. 在TCP客戶端/服務器程序中未收到消息
- 25. c#WCF客戶端服務器消息傳遞/事務優化
- 26. 客戶端和服務器端之間的共享代碼
- 27. RSA之間的PHP服務器端和Java(Android)客戶端。
- 28. 向所有客戶端發送消息(客戶端 - 服務器通信)
- 29. 套接字服務器 - 發送消息從客戶端到客戶端
- 30. 在Go中的客戶端和服務器之間的通信
你的問題太含糊而且開放。儘量讓它更專注或具體。 –
最簡單的答案是:儘可能多的。像問題一樣含糊不清。 – Ikke