2012-05-17 12 views
5

Próbuję wymyślić sposób dla użytkowników witryny (powiedzmy ucznia i nauczyciela), aby udostępnić bezpieczne połączenie, w którym obie strony przeglądają aktualizacje w czasie rzeczywistym na jednej stronie. Z badań wynika, że ​​niektóre aktualizacje w czasie rzeczywistym mogą być wykonywane przy użyciu ajax i javascript.Jak udostępniać aktualizacje w czasie rzeczywistym na stronie internetowej między użytkownikami na różnych komputerach?

Ale jestem zaskoczony, w jaki sposób użytkownicy mogą udostępniać połączenie, w którym tylko dwaj użytkownicy będą przeglądać aktualizacje, które mają miejsce na stronie internetowej (takie jak flashowe animacje deski kreślarskiej). Nie wiem też, jak możesz nawet zacząć konfigurować połączenie takie jak to.

Wygląda na sesje php i ciasteczka, ale nie jestem pewien, czy robię odpowiednie badania. Wszelkie wskazówki na temat tego, w jaki sposób dwóch określonych użytkowników może współdzielić bezpieczne połączenie, w którym aktualizacje w czasie rzeczywistym są wyświetlane tylko przez nich. Nie chcę odpowiedzi lakonicznej. Szukam konkretnych szczegółów, takich jak funkcje i składnia specyficzne dla php. Doceniam pomoc i ocenię cię, jeśli dasz mi dobre odpowiedzi!

+0

Szukasz czegoś takiego jak Dokumenty Google, w którym użytkownicy mogą zobaczyć zmiany wprowadzone przez innych? A może jakiś wspólny ekran? Musisz dokładniej określić, co chcesz osiągnąć ... –

Odpowiedz

0

Możesz spojrzeć na techniki ajax push. Użyłem komety raz, gdy administrator opublikował wiadomości i wszyscy, którzy byli zalogowani, zobaczyli tę wiadomość na ekranie. Nie wiem, czy kometa obsługuje PHP. Używałem go tylko z JSP. Wystarczy wyszukać "ajax push" w Google.

2

Nie można udostępnić bezpiecznego połączenia (np. HTTPS) z jednego klienta na jeden serwer.

Jeśli obaj klienci są zalogowani i mają działające w tle zadanie AJAX, czy możliwe jest, aby każdy klient "co kilka sekund" ciągnął "te same dane do wyświetlenia dla obu użytkowników?

Wymagałoby to aktualizacji "tablicy kreślarskiej", która również byłaby wysyłana z powrotem do serwera w celu udostępnienia zaktualizowanych danych drugiemu klientowi. Na pewno będzie zdarzenie, którego możesz użyć do wywołania posta danych (np. Myszką w górę).

Jeśli wydajność jest problemem, należy użyć lepszej technologii serwerowej, takiej jak Java, która może utrzymywać stan sesji między żądaniami bez konieczności utrzymywania w bazie danych.

-1

Jestem pewien, że sprawdziłeś to. Opinia, że ​​można to zrobić za pomocą ajax jest mylące, aby uwierzyć, że dwóch użytkowników strony internetowej może komunikować się za pośrednictwem javascript.

Jak wiesz, javascript dzieje się na kliencie, a ajax zasadniczo "rozmawia z serwerem bez zmiany strony lub odświeżenia".

Komunikacja między dwoma użytkownikami witryny musi odbywać się za pośrednictwem serwera - php i wybranego magazynu danych.

Mam nadzieję, że nie była ona zwięzła. Wiwaty, Rob

0

Flash pozwala na połączenia między użytkownikami, myślę, że nazywają je gniazdami.
Jeśli chcesz używać Ajaxa i innych, potrzebujesz technologii obsługującej serwer, która obsługuje funkcję push.
Węzeł jest standardem pod tym względem i można skonfigurować instancję Heroku za darmo.

Są jeszcze inne rzeczy i musisz nauczyć się narzędzi, zanim zaczniesz uczyć się aplikacji.

Wśród wielu przeglądów, to mogą Cię interesować:
http://arstechnica.com/business/2012/05/say-hello-to-the-real-real-time-web/?1

0

kilka dobrych przykładów, gdzie tak się dzieje:

Techniki można użyć (z różnym wsparcia przeglądarki)

Naprawdę pchanie danych do klienta przeglądarki internetowej z serwera (co miałby to robić, gdy odbiera coś z innego klienta) jest możliwe tylko z WebSocket o ile wiem. Inny mechanizm wymagałby wtyczek przeglądarki lub samodzielnej aplikacji.

Jednak dzięki Comet (przez AJAX) można naprawdę zbliżyć się do przesyłania danych przez okresowe odpytywanie serwera w poszukiwaniu danych. Jednak w przeciwieństwie do tradycyjnego sondowania (np. Gdy klient prosi o dane co 5 sekund), zgodnie z zasadą Comet serwer przetrzymuje żądanie okresowego zakładania przez, powiedzmy, do 30 sekund. Serwer nie odeśle danych, dopóki nie otrzyma danych lub upłynie limit czasu. W ten sposób, w ciągu tych 30 sekund, wszystkie dane, które otrzymuje serwer, mogą zostać natychmiast przekazane do innych klientów. I zaraz potem klient rozpoczyna nową 30-sekundową sesję i tak dalej.

Chociaż zarówno Comet, jak i WebSockets powinny działać z zapleczem PHP obsługiwanym przez Apache. Zalecam zajrzeć do NodeJS (jako technologii serwerowej).

Istnieje wiele informacji dotyczących Komety w Internecie, sugeruję, abyś to zrobił, może zaczniesz od Wikipedii.

Wspaniałą cechą komety jest to, że jest to bardziej zasada niż technologia. Korzysta z tego, co już mamy (proste żądania HTTP w AJAX), więc obsługa przeglądarki jest bardzo szeroka.

Można również utworzyć kombinację, w której używa się gniazd, jeśli są obsługiwane i zastępują Comet.

Powiązane problemy