Czat - odbieranie danych

Odpowiedz Nowy wątek
2015-01-05 21:55
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 ?

Pozostało 580 znaków

2015-01-05 22:00
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.


A takie coś nie przejdzie: http://socketo.me/ (nie wiem dokładnie jak to wewnętrznie działa, ale chyba nie tworzy interpretera per połączenie)? - n0name_l 2015-01-06 12:25
Nie, to jest robienie z php tego, czym nie jest :p Ratchet requires React, Guzzle, and Symfony2's HttpFoundation in order to work. - Ratchet robi z php aplikację działającą w tle i nasłuchującą nowych połączeń na określonym porcie - generalnie to samo co node, tylko inny język i trochę trudniej zacząć. Tak samo jak node - wymaga doinstalowania czegoś na serwerze oraz uruchamiania własnych poleceń. Node jest tu prostsze i naturalniejsze. Ani jednego ani drugiego nie odpalisz na normalnym, współdzielonym hostingu. - dzek69 2015-01-06 12:41

Pozostało 580 znaków

2015-01-05 22:09
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ć ?

Pozostało 580 znaków

2015-01-05 22:54
0

http://www.zeitoun.net/articles/comet_and_php/start


Pozostało 580 znaków

2015-01-06 00:03
0

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

Pozostało 580 znaków

2015-01-06 11:57
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 ?

Pozostało 580 znaków

2015-01-06 12:20
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.

edytowany 3x, ostatnio: mr_jaro, 2015-01-06 12:20

Pozostało 580 znaków

2015-01-06 13:07
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 ?

edytowany 1x, ostatnio: rafal612b, 2015-01-06 13:07

Pozostało 580 znaków

2015-01-06 13:24
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


edytowany 2x, ostatnio: dzek69, 2015-01-06 13:26
Websockets ma się bardzo dobrze, jedyne co to żegnaj ie < 10 i bodajże opera 12. - mr_jaro 2015-01-06 13:54

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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