簡體   English   中英

如何在流星應用程序上廣播數據?

[英]How to broadcast datas on a meteor app?

首先,對於我的英語不好,我深表歉意,希望您能理解我!

因此,我正在為一個uni項目制作視頻游戲(非常原始!)。 這是一個在線多人游戲。 我正在使用流星和相位器。 從本質上講,這是一款您可以控制船只並需要在其他玩家的船只上射擊的游戲。

我的問題是其他玩家的位置不會在客戶端計算機上實時更新。 實際上,這是5到10秒之間的延遲(可能更多,我沒有計時)。 我認為這是由於我更新其他球員的位置而導致的。 在我的相位器主更新循環中,我用船的新位置更新數據庫。 我認為更新功能每秒被調用60次,這真是很多! 我不知道流星能否在這么短的時間內處理這么多更新? 所以這就是我更新數據庫的方式,然后我需要更新用戶計算機上其他玩家的位置。

為此,我有一個Boats集合的訂閱,還有一個watchChanges函數,該函數在每次更改數據庫時都會更新其他玩家的位置。

我想這不是最簡單的方法,也不是最有效的方法! 我的第一個想法是使用流星流或Streamy之類的東西,以便每個用戶都可以不斷廣播自己的位置。 但是我讀到Meteor流不再更新,並且我無法使Streamy工作。

所以我的問題是:您建議如何(非常)經常向其他用戶廣播數據? 如果我能夠做到這一點,例如,我可以每10秒將船只數據保存在數據庫中。

謝謝 :)

再次,我對我的英語感到抱歉,我希望我的問題可以理解。 另外,我對Meteor還是很陌生,所以如果我的做法很糟糕,請不要判斷我^^

您在這里有幾個選擇。 最簡單的方法可能是在內存中完全運行MongoDB: http : //edgystuff.tumblr.com/post/49304254688/how-to-use-mongodb-as-a-pure-in-memory-db-redis

另一個選擇是只將真正的Redis與Meteor一起使用。 當然,這將需要運行Redis服務器。 其上的學習曲線可能高於上面的選項。 https://github.com/meteor/redis-livedata

最后,盡管看起來Meteor Streams可能意味着您的游戲結構發生了重大變化,但它似乎仍然可以工作。 http://arunoda.github.io/meteor-streams/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM