Czat - odbieranie danych

0

Siemka mam jedno szybkie pytanie. Czy najbardziej optymalnym sposobem na stworzenie czatu PHP, JS jest co określony czas wysyłanie zapytania do jakiegoś pliku PHP? Czy można się dowiedzieć kiedy coś odświeżyć jakoś inaczej ?

0

Nie da się stworzyć optymalnej wersji w PHP.

Mając czat w php i dużo użytkowników jesteś zmuszony na odpytywanie serwera co chwila, a to tworzy lagi i wiele innych problemów.
Lepiej byłoby otworzyć stałe połączenie, ale na każdym hostingu masz duże limity dotyczące ilości instancji interpretera php - zazwyczaj ok 4-8 intrepreterów na raz. Czyli 4-8 użytkowników wejdzie na czat i już nikt żadnej podstrony nie otworzy, ani do czatu nie dołączy.

W związku z tym, w przypadku PHP jedyna opcja to odpytywanie serwera co chwila, ale jest to nieoptymalne rozwiązanie.

0

nom ok a jak takie stałe połączenie otworzyć ze po prostu skrypt się nie kończy a ja wysyłam dalej echo ?? czy jak ma to działać ?

1

Kiedyś się pytałem w jednym wątku tutaj odnośnie mojego pomysłu na stronę, którą tworzę gdzie mają być jako jeden z modułów chaty pomiędzy userami i się pytałem czy dobrze się orientuję, że najlepsze rozwiązanie to same chaty obsługiwać poprzez node.js Do tej pory nikt tam nie odpisał więc z tego co wiem to jest najlepsze rozwiązanie czyli strone masz sobie w php ale chaty opierasz na node.js, z sesją nie ma problemu. :p

0

@mr_jaro czyli serwer w JS stawiam u siebie na kompie a na stronie wygenerowanej przez PHP ustawiam zapytania AJAXowe na swojego IP ? Bo z tego co trochę poczytałem to node.js jest aplikacją serwerową a nie skryptem więc nie uruchomię go po stronie klienta. Czy jak ty to widzisz ?

0

Na serwerze działają równocześnie serwer php i serwer node.js, gdzie php działa bezstanowo i tylko po wywołaniu żadania czyli otwieranie kolejnych podstron i jest mniej skomplikowane w tworzeniu natomiast na node.js stoi tylko chat, node.js umożliwia otwarcie stałego połaczenia klient-serwer dzięki czemu jest dużo wydajniejszy, potrzebujesz mniej mocy na serwerze ale w tworzeniu jest bardziej skomplikowany. Oczywiście to jest rozwiązanie tylko jeśli masz swój serwer (vps/dedyk) lub twój hosting umożliwia uruchamianie node.js.

0

Albo tak jak mówiłem odblokuje określone porty na routerze i node.js będę stawiał u siebie na kompie. Też jakieś wyjście ale gdybym już tak kombinował nie wiem czy nie lepiej napisać jakiegoś małego serwerka C#. To teraz kolejne mini pytanko i chyba będzie można uznać temat za zakończony. Jak odbywa się komunikacja po stronie klienta z node.js ? Jest w Java Script jakaś możliwość pracy na socket'ach czy czymś takim ? Będzie to można użyć do dowolnego serwera pracującego na socket'ach ?

0

w javascript w przeglądarkach jest coś takiego fajnego (i już dobrze wspieranego) jak EventSource: http://www.html5rocks.com/en/tutorials/eventsource/basics/

edit: ee, widzę, że Websockets mają się jeszcze lepiej ;)

edit2: a, zapomniałem, że to czat, eventsource nie jest dwukierunkowe, jest tylko nasłuchowe

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0