Ostatnio dostalem propozycje stworzenia komunikatora dla pewnej firmy.
Oczywiscie pierwsza mysl byla taka, zeby stworzyc to po socketach w java, ale pozniej po analizie zaczalem sie zastanwiac czy nie dozylismy juz czasow, w ktorych komuniaktor oparty na zwyklej bazie danych, js i ajaxie moze byc rownie wydajny?
Wystarczy popatrzec na WebGadu, ktore dziala sprawnie i wcale nie gorzej niz inne komunikatory w aplikacjach okienkowych (destkopowych)...
a nie lepiej zaimplementować protokół xmpp? efekt ten sam, a zaoszczędzisz godziny na tworzeniu nowego protokołu co jest imho bezcelowe... facebook chat korzysta z xmpp.
webgadu nie działa na zwykłym ajax tylko na websocketach a więc na socketach dla javascript
nie wiem tylko za bardzo jakie jest pytanie
w każdym razie - czy w javie czy w javascripcie będziesz musiał użyć do tego socketów
zmienia się tylko typ aplikacji
osobiście używam tylko webgadu jako przypiętej zakładki w chromie, nie mam zainstalowanego żadnego normalnego komunikatora
dawidgarus napisał(a):
a nie lepiej zaimplementować protokół xmpp? efekt ten sam, a zaoszczędzisz godziny na tworzeniu nowego protokołu co jest imho bezcelowe... facebook chat korzysta z xmpp.
imo bezcelowe jest w ogóle tworzenie nowego komunikatora...
Jest klika takich produktow w internecie, ktore dziaja tylko na bazie danych (sprawdzanie czy pojawila sie nowa wiadomosc i jesli tak to wyswietlenie jej w okienku).
Cos jak kiedys tworzylo sie shoutboxy (przynajmniej ja tak tworzylem:)
Zastanawiam sie tylko jaka bedzie wydajnosc takiej aplikacji...
Nie wiedzialem, ze webgadu dziala na javascriptowych socketach, dzieki za info, ktos mnie wprowadzil w blad.
no kiedyś większość działała właśnie w ten sposób, najczęściej z przetrzymywaniem połączenia gdy nie ma danych - nazywa się to long pollingiem
ale odkąd websockety są dostępne we wszystkich przeglądarkach dużo profesjonalniej będzie je wykorzystać
różnica nie jest wielka, odpada tylko ciągłe zrywanie i nawiązywanie nowego połączenia i parsowanie skryptu za każdym razem
nie trzeba też odpytywać za każdym razem bazy danych o dane z sesji żeby rozpoznać klienta więc odciąża trochę serwer
chyba masz na myśli te dla 5 użytkowników bo na pewno nie te, gdzie ilość użytkowników jest liczona w tysiącach albo milionach. Podstawowym mechanizmem dla komunikatora jest socket (wymagana komunikacja dwukierunkowa) a baza może być używana do np. składowania listy userów, ich kontaktów oraz wiadomości, które w danej chwili nie mogą być dostarczone (bo np. adresat nie jest w danej chwili dostępny).