我剛剛發現XMPP是多麼的棒,我正在嘗試開發多人遊戲作爲XMPP組件(XEP-0114)。XMPP組件存在
但是,我無法指示組件的存在。這是真的,該組件將需要響應<存在>節本身?
確定它可以做到這一點,但不是因爲維護而關閉。另外,組件在備份時通知誰?它當然可以將所有感興趣的用戶註冊到數據庫中,但如果它停機五分鐘,那麼該列表肯定會改變。以前不感興趣的用戶現在可以使用,而感興趣的用戶將不再使用。另外,如果它崩潰(可能發生),它不能發出'不可用'存在指示。
無法將此功能卸載到服務器上嗎?
我剛剛發現XMPP是多麼的棒,我正在嘗試開發多人遊戲作爲XMPP組件(XEP-0114)。XMPP組件存在
但是,我無法指示組件的存在。這是真的,該組件將需要響應<存在>節本身?
確定它可以做到這一點,但不是因爲維護而關閉。另外,組件在備份時通知誰?它當然可以將所有感興趣的用戶註冊到數據庫中,但如果它停機五分鐘,那麼該列表肯定會改變。以前不感興趣的用戶現在可以使用,而感興趣的用戶將不再使用。另外,如果它崩潰(可能發生),它不能發出'不可用'存在指示。
無法將此功能卸載到服務器上嗎?
當你的組件接收<presence type='probe'/>
,它應該與你的組件當前存在答覆。
當你的組件收到<presence type='subscribe'/>
時,它應該將from
地址保存在某種存儲機制中,然後用<presence type='subscribed'/>
回覆。
當你的組件上線時,它應該存在發送到每個保存在步驟訂戶2.
始終確保把既有to
地址和from
地址對發送的所有節你的組件。如果您習慣於編寫客戶端,您可能會在步驟3中忘記。
好的,但如果組件重新聯機需要五分鐘的時間會怎樣?感興趣的用戶列表肯定會發生變化,所以步驟二中記錄的用戶將被淘汰。 –
不,第二步記錄的用戶列表不會改變,除非您取消訂閱。這是對你的存在感興趣的人的名單。您不在乎是否向不在線的人發送在線狀態信息,或者如果您向已經收到該信息的人發送了第二份狀態信息(在您墜毀之前)。 –
但是,如果有新用戶出現並且想在我的組件註銷時註冊,它將不會收到狀態訂閱,並且用戶不會收到回覆。然後,當組件上線時,它不會知道新用戶,用戶也不會知道該組件現在處於聯機狀態。 –
什麼編程語言?什麼XMPP庫? –
我使用JavaScript和node-xmpp。然而,這應該是協議,不是特定於實現......除非我誤解了某些東西。 –
你是對的,除了在某些環境(如SleekXMPP)中,有一個現有的類來處理你的協議,這將是一個捷徑。 –