2011-06-24 20 views
1

我的問題是關於XMPP協議;這被認爲是使用實時情景,用於基於LAN的多用戶遊戲的XMPP

難道是實時通常是在多用戶遊戲背景?

可有人告訴,

如何還是它的擬合入上下文實時多用戶遊戲,如傳統的TCP和UDP協議或

是它完全不同的野獸,其中上下文

它適合用於遊戲嗎?以及支持哪種遊戲

回答

0

XMPP協議與遊戲服務器沒有任何關係。 XMPP是一種分散式聊天協議,每個人都可以建立自己的服務器。當然,您可以使用從此聊天系統解析的消息來同步您的實時多用戶遊戲,但這會產生大量開銷(因爲XMPP使用通常不會編碼的長XML消息*。)

更好/更平常在遊戲中進行通信的方式是構建自己的二進制格式,該格式存儲遊戲狀態更改並使用UDP套接字將其發送到服務器(注意時間標記消息以便您可以放下遲到的消息,也可以在設計中加入一些消息可能會被丟棄)服務器應檢查狀態更改是否有效,然後將其重新分配給其他客戶端,這爲您提供了一個低開銷協議,但UDP並不保證對重要但罕見的消息進行排序和傳遞你應該使用第二個通過TCP發送消息的套接字(例如聊天消息)。

現在這可能看起來像很多工作,但也有相當多的代碼示例,甚至包含JAVA和其他語言的服務器/客戶端架構爲您設置,所以你只需要發送消息。

*有些XMPP擴展,它壓縮/編碼的消息

+0

XMPP將通過udp協議在私有視頻網絡中工作嗎? –

+0

好吧,我不會,但你可以。來自XMPP網站:「可擴展消息和呈現協議(XMPP)是一種用於......語音和視頻通話的開放技術......」 –

+0

所以你的意思是所有基於XML的方法用於在多用戶實際情況下發送數據遊戲時間不符合使用條件。 –

0

根據您的延遲和吞吐量要求XMPP可能會或可能不會有用。如果你要編寫一個互聯網分佈式遊戲,社交方面和內容更新較少(比如farmville),Xmpp會很有用,因爲它可以輕鬆擴展許多simulatenous用戶,跟蹤他們的在線狀態,用戶和遊戲之間的直接消息傳遞組件等等。

對於快節奏的事情來說,協議的開銷可能不合適。

在tcp/udp環境中,xmpp是一個xml流協議,位於tcp之上,具有集中的聯合服務器。