2012-12-01 19 views
5

Zacząłem ten mały projekt, w którym będę pracował w czasie rzeczywistym nad kodowaniem przy użyciu CodeMirror.Współpraca w czasie rzeczywistym z CodeMirror

Mam konfigurację systemu msgs taką, jak łatwo przenosić obiekty z jednego użytkownika na drugiego. Mój problem polega na zintegrowaniu go z CodeMirror. Odkryłem, że ma zdarzenia dla onchange i replaceRange (string, from, to).

Przekazuję obiekty onchange innym użytkownikom i używam opcji replaceRange, aby zaktualizować widok. Problem pojawia się wtedy, gdy używasz replaceRange, uruchamia on nowy onchange i wysyła wiadomości zwrotne do tyłu i do przodu. Każdy wie, czy istnieje jakiś sposób aktualizacji lokalnego widoku bez wywoływania zmiany. Lub sugestie dotyczące innych ścieżek. (system msgs jest już skonfigurowany i jego łatwe przekazywanie obiektów javascript do innych klientów).

Odpowiedz

4

Aby to działało poprawnie, musisz również scalić zmiany. Zobacz http://ot.substance.io/, aby zobaczyć wersję demonstracyjną rozwiązania open source (również przy użyciu CodeMirror).

+0

Właśnie znalazłem to demo. Wygląda na to, że działa dobrze. –

+1

milent = true; zaktualizuj codemirror; cichy = fałsz; było to, czego potrzebowałem, aby go rozwiązać. –

+0

@pksorensen Witam, mam dokładnie ten sam problem. Czytałem twój komentarz, ale nie jestem pewien, co tutaj jest ciche? Naprawdę nie mogłem znaleźć niczego podobnego w podręczniku z kodem lustrzanym. Czy myślisz, że dzielisz się rozwiązaniem, lub że możesz je trochę rozwinąć? Proszę, zrób to. Dzięki –

7

You Can Użyj Firepad

FirePad jest open-source (na GitHub) Realtime współpracy plug-in do CodeMirror. Możesz to ustawić za pomocą codemirror w 4 dodatkowych liniach kodu i kilka minut. Używa on do obsługi backendu Firebase.

+3

Firebase nie jest bezpłatna i nie jest prywatna. – Richard

+0

To było, kiedy napisałem to lata temu ... potem Google to nabył. – DrFriedParts