To jest pytanie dla tych, którzy znają architekturę Meteora.Jak zaprojektować inteligentny pakiet meteorytów, aby w przejrzysty sposób oddzielić aplikację na różne instancje?
Próbuję zaprojektować inteligentny pakiet, który może przezroczyście uruchomić kilka "kopii" aplikacji Meteor. Oznacza to, że biorąc pod uwagę istniejącą aplikację Meteor i kilka wstępnie zdefiniowanych grup użytkowników, pakiet może półautomatycznie "segregować" aplikację - uruchamiać ją w sposób, w jaki dla każdej grupy użytkowników, wydaje się, że tylko ci użytkownicy używają aplikacja.
Rozumiem, że ta funkcja może być zaprojektowana na zamówienie dla dowolnej aplikacji. Jednak szukam najbardziej prostego sposobu na inteligentny pakiet, aby zapewnić tę funkcjonalność w stosunku do każdej istniejącej aplikacji, biorąc pod uwagę korzystanie z Meteor's Collection
s i wszystkich. W związku z tym powinien spełniać mniej lub więcej następujących wymagań:
- Powinien być równie skuteczny jak zwykła aplikacja Meteor.
- Konwersja istniejącej aplikacji Meteor do korzystania z tego systemu powinna wymagać minimalnej modyfikacji kodu.
- Pakiet nie powinien modyfikować ani zastępować Meteora i być względnie przyszłościowy.
Oto kilka podejść i odpowiadające im wady Myślałem o tego problemu:
- korzystać ze wszystkich zbiorów regularnej aplikacji Meteor i oznaczyć każdy dokument z dodatkowym identyfikatorem reprezentujący grupę użytkownik jest zalogowany. Publikacje/subskrypcje dla każdego użytkownika pobierają tylko dokumenty o tym samym identyfikatorze grupy.
- Przesłoń
Meteor.Collection
(lub zaimplementuj identyczny interfejs) w sposób, który informuje o tych różnych grupach, a z perspektywy klienta zachowuje się tak, jakby grupa użytkownika była całą aplikacją.
Szukam dobrych pomysłów od kogoś, kto naprawdę zna system Meteora. Jak zaprojektować tę funkcjonalność w taki sposób, aby zdecydowana większość aplikacji Meteor mogła być łatwo przekonwertowana do pracy z nią (tj. Unikała szalonych hacków, które są bardzo kruche), a jednocześnie jest prosta i wydajna w implementacji na Meteor?
(Jeśli jesteś guru Meteor w obszarze Nowego Jorku, byłbym szczęśliwy, że cię na obiad, aby omówić to!)
Znalazłeś jakieś dobre odpowiedzi na to pytanie? A może nawet wypróbowałeś je w praktyce? – tuomassalo
@tuomassalo Sam je budowałem; zobacz https://github.com/HarvardEconCS/turkserver-meteor dla implementacji, która stanie się bardziej zaawansowana w ciągu następnych kilku miesięcy. –