Jakub L.

Jakub L. Programista

Temat: Node.js czy Apache/PHP

Jak otworzysz takie połączenie na poziomie TCP/IP i ono nie zostanie zamknięte, to masz problem.
Jak będziesz miał abstrakcję i na poziomie TCP/IP będziesz socket zamykał, to nie będzie się to różniło wiele od AJAXa.

Według specyfikacji niezamknięte połączenie TCP/IP wisi 120 godzin, kilka razy zdarzało mi się, że Linux robiący za router robił się nieresponsywny właśnie przez wiszące połączenia TCP/IP wygenerowane przez osły i muły.
Olanie speca i drastycznie zmniejszenie czasu wiszenia połączenia załatwiło sprawę.
Teraz nałóż to sobie na serwer, gdzie serwer jest jeden (albo kilka) a klientów wiele (albo kilka wiele).

Niby fajna rzecz, ale może się okazać, że pragmatyzm zwycięży i właściciele serwerów się wypną.
Maciej Sikora

Maciej Sikora Programista
aplikacji
internetowych

Temat: Node.js czy Apache/PHP

Chat online nie uważam za coś konkretnego. Ja zajmuję się grą, więc to jest sprawa na miesiące a nawet lata. Chat tak jak mówisz można zrobić szybciutko.
HTTP nie jest przeznaczone do częstego odpytywania serwera. Pisząc częstego, mam na myśli kilka razy na sekundę. Nawet raz na sekundę może być problemem.
No bez przesady, jakby było jak mówisz żaden serwis internetowy by nie działał Z facebookiem na sekundę łączą się miliony ludzi i wszystko jest przez http. Oczywiste jest, że http to protokół bezstanowy i niedostosowany do gier, ale to nie ma nic wspólnego z wydajnością na sekundę. Problemem nie jest protokół a serwery typu apache, które każde żądanie obsługują oddzielnym wątkiem, co blokuje zasoby (node.js jest zdarzeniowy i sprawę załatwia). Druga sprawa co ma odpytywanie serwera do web socket. Jeśli wiesz czym jest socket to powinieneś wiedzieć, że nie ma tam ciągłego odpytywania serwera, a jedynie komunikacja obustronna, która utrzymuje ciągłe połączenie. Websocket nie jest żądaniem http, a żądaniem websocket - to jest inny protokół stworzony do tego celu!
Jakbym robił grę, która ma być samodzielnie instalowana lub odpalana w maszynie wirtualnej to napewno użył bym innych technologii. Ja mówię o aplikacjach, grach tworzonych w html 5 w przeglądarkach internetowych, więc nie ma mowy o czymś innym niż websockety i http.
Na przykład chat online nie jest czymś konkretnym? Napiszę go w tej
technologii w 3 dni. A wsparcie w przeglądarkach nawet nie wiadomo kiedy
będzie :(((
Wszystko idzie do przodu. Nie uznaję podejścia - używajmy tego bo działa na ie6, tak myśląc jesteśmy zmuszeni ciągle być z tyłu. Jest jeszcze coś takiego jak socket.io, który jeśli przeglądarka nie obsługuje web socketa wykorzystuje socketa flash lub long-polling. Idźmy do przodu a nie do tyłu!
Maciej Sikora

Maciej Sikora Programista
aplikacji
internetowych

Temat: Node.js czy Apache/PHP

Jakub L.:
Jak otworzysz takie połączenie na poziomie TCP/IP i ono nie zostanie zamknięte, to masz problem.
Jak będziesz miał abstrakcję i na poziomie TCP/IP będziesz socket zamykał, to nie będzie się to różniło wiele od AJAXa.

Według specyfikacji niezamknięte połączenie TCP/IP wisi 120 godzin, kilka razy zdarzało mi się, że Linux robiący za router robił się nieresponsywny właśnie przez wiszące połączenia TCP/IP wygenerowane przez osły i muły.
Olanie speca i drastycznie zmniejszenie czasu wiszenia połączenia załatwiło sprawę.
Teraz nałóż to sobie na serwer, gdzie serwer jest jeden (albo kilka) a klientów wiele (albo kilka wiele).

Niby fajna rzecz, ale może się okazać, że pragmatyzm zwycięży i właściciele serwerów się wypną.

Nawet nie zdajesz sobie sprawy jak ta technologia jest wspierana przez środowiska programistów na całym świecie. Nie ma szans żeby nie udało się zrobić stabilnej wersji tego protokołu. Jeśli tak się stanie to będzie duży krok w tył. Trochę sceptyczne macie podejście, tak naprawdę html5, css3 też nie powinniśmy używać bo nie wszystkie przeglądarki to mają. Bez przesady.
Jakub L.

Jakub L. Programista

Temat: Node.js czy Apache/PHP

Maciej Sikora:

Nawet nie zdajesz sobie sprawy jak ta technologia jest wspierana przez środowiska programistów na całym świecie. Nie ma szans żeby nie udało się zrobić stabilnej wersji tego protokołu.

Na razie chodzi o bezpieczną, zwiększenie odporności na ataki (D)DOS przyjdzie później.
Do dłubania samemu sobie można sobie websockety powłączać.
Jeśli tak się stanie to będzie duży krok w tył. Trochę

E tam, będzie tak jak teraz.
sceptyczne macie podejście, tak naprawdę html5, css3 też nie powinniśmy używać bo nie wszystkie przeglądarki to mają. Bez przesady.

Różnica jest taka, że serwerowi zajedno, czy serwuje HTML 1, 4, 5 czy xhtml, tak samo z cssem, natomiast w przypadku websocketów wpływają one na sam serwer i jego zachowanie - Apaczem zaserwujesz normalnie HTML 5 czy css3, a do websocketów go już nie nakłonisz, i tu jest różnica.

A że programistom się podoba, dziwnym nie jest, dostają normalne kanały komunikacji tam, gdzie trzeba było rzeźbić w AJAXie.
Maciej Sikora

Maciej Sikora Programista
aplikacji
internetowych

Temat: Node.js czy Apache/PHP

Jakub L.:
E tam, będzie tak jak teraz.

Hehe, no no i co myślisz, że internet to zawsze będą strony internetowe. Grubo się mylisz, a ja już widzę, że desktopowe aplikacje idą do lamusa. Ile to już mamy webowych odpowiedników, nawet microsoft rusza z officem w chmurę. Nie obronisz się od tego chodź byś chciał. Websockety są dużym krokiem w rozwoju oprogramowania serwerowego, a takie firmy jak apple, mozilla, google czy microsoft nie mogą się mylić.
Różnica jest taka, że serwerowi zajedno, czy serwuje HTML 1, 4, 5 czy xhtml, tak samo z cssem, natomiast w przypadku websocketów wpływają one na sam serwer i jego zachowanie - Apaczem zaserwujesz normalnie HTML 5 czy css3, a do websocketów go już nie nakłonisz, i tu jest różnica.

A kto mówi o Apache. Wybrałem node.js bo nadaje się do tego, a Apache pozostaje do standardowego PHP i zwykłych aplikacji. Nakłonić to go nakłonisz, ale przez swoją wątkowość nie jest preferowanym rozwiązaniem.
Jakub L.

Jakub L. Programista

Temat: Node.js czy Apache/PHP

Maciej Sikora:
Jakub L.:
E tam, będzie tak jak teraz.

Hehe, no no i co myślisz, że internet to zawsze będą strony internetowe. Grubo się mylisz, a ja już widzę, że desktopowe aplikacje idą do lamusa. Ile to już mamy webowych odpowiedników, nawet microsoft rusza z officem w chmurę. Nie obronisz się od tego chodź byś chciał. Websockety są dużym krokiem w rozwoju oprogramowania serwerowego, a takie firmy jak apple, mozilla, google czy microsoft nie mogą się mylić.

Nieco odbiegamy od tematu :)
Znasz wielu biznesmenów którzy z radością powierzą dokumenty swojej firmy jakiejś bliżej niezdefiniowanej "chmurze"?
Może wrócić idea terminali z początków informatyki, albo cienkich klientów, ale własna infrastruktura nie jest do przecenienia. Tak samo jak to stało się kilkadziesiąt lat temu, gdy okazało się, że ludzie wolą mieć cały komputer w domu.

Dwa: to, że dzisiaj kilkaset milionów ludzi radośnie przeprowadza wiwisekcję swojej prywatności oddając za garść paciorków coś, na co inaczej Wielki Brat musiałby wysupłać straszną kabonę nie oznacza, że tak będzie zawsze, tak samo z dokumentami - chciałbyś żeby bliżej niesprecyzowane organizacje miały potencjalny dostęp do na przykład twoich pism do banku?
Nawet ustawa o ochronie danych osobowych jest dość pouczającą lekturą, postępowanie GIODO dorzuca swoje i przeciąga punkt ciężkości w kierunku tragifarsy, a miliardy much i tak robią swoje, wystawiając się na kradzieże tożsamości, phishing i tym podobne.
Chmura jest fajną zabawką jak się chce coś pokazać znajomym, albo w intranecie jakiejś organizacji, ale do poważnych zastosowań gdzie w grę wchodzą pieniądze jest jakby mało masywna.

Od strony programistycznej - websockety są kolejnym poszukiwaniem srebrnej kuli - próg wejścia do dewelopowania w HTMLu i JavaSkrypcie jest absurdalnie niski - potrzebujesz jedynie edytora tekstowego i przegladarki, przeglądarka odwala cała robotę typu kompilacja i wykonanie.
Kolejny poziom to serwer z którym przeglądarka się będzie komunikowała. Do tej pory taka komunikacja kulała - najpierw były POST i GET, później ramki, potem ktoś rzeczywiście łebski wykombinował AJAX, ale nadal to było upierdliwe - AJAX sprowadza się do programowania równoległego, a to jest jedną z trudniejszych rzeczy do oprogramowania, i pojawiły się websockety, jako transplantacja czegoś, co się sprawdziło (czyli socketu) z poziomu systemu operacyjnego na poziom dostępny dla JS - przeglądarki.

Z niskiego progu wejścia i z faktu że przeglądarki powoli stają się platformami uruchomieniowymi nie ustępującymi programom chodzącym bezpośrednio w systemie operacyjnym (albo maszynach wirtualnych, jeden pies), wykiełkowała idea, że skoro jest to takie łatwe i dostępne, to masa ludzi będzie mogła robić masę softu, tanio, bo tych drogich się nie zatrudni.
Problem w tym, że ta masa jest najczęściej niedoedukowana i robi krap, i dlatego jest tania, a drodzy wiedzą dlaczego są drodzy.

W probówce taka katastrofa nazywała się JIL, Bondi i WAC - miało być tak pięknie, wyszło jak zwykle (jak na przykład wyszło lata wcześniej z WAPem).
Różnica jest taka, że serwerowi zajedno, czy serwuje HTML 1, 4, 5 czy xhtml, tak samo z cssem, natomiast w przypadku websocketów wpływają one na sam serwer i jego zachowanie - Apaczem zaserwujesz normalnie HTML 5 czy css3, a do websocketów go już nie nakłonisz, i tu jest różnica.

A kto mówi o Apache. Wybrałem node.js bo nadaje się do tego, a Apache pozostaje do standardowego PHP i zwykłych aplikacji. Nakłonić to go nakłonisz, ale przez swoją wątkowość nie jest preferowanym rozwiązaniem.

Ogólnie dla masowego wdrożenia websocketów musisz przebudować sporo obecnej infrastruktury przystosowanej do HTMLa, css i JS, a jak to się będzie skalowało, to dopiero przyszłość pokaże.
Marek Surma

Marek Surma Twórca aplikacji
internetowych.

Temat: Node.js czy Apache/PHP

Ok... Panowie powinniśmy chyba dać sobie na wstrzymanie. Nie widzę żeby ktoś wyszedł z argumentami ponad resztę dyskutujących. Wynika z tego, że rozpoczynamy zwyczajny flame war. Każdy ma trochę racji. Ja uważam, że jeżeli Maciek doszedł do wniosku że dla niego dobra będzie taka technologia to powinien za tym iść dalej. Myslę że wykona odpowiednie testy i dowie się wtedy czy jego rozwiązanie jest okej. W razie czego przepisze warstwę komunikacji i pojedzie na innej technologii. Dalszą dyskusję uważam za bezsensowną. Działajmy Panowie, a jeszcze lepiej gdybyśmy to my tworzyli standardy komunikacji! :) Może Web Socket to zły pomysł. Może mamy lepszy?

Pozdrawiam!

konto usunięte

Temat: Node.js czy Apache/PHP

Marek Surma:
Kto zauważył ten zauważył, ale ja bym w to nie wszedł ;)

Byłoby to rozwiązaniem lecz polecam zobaczyć listę przeglądarek wspierających tą technologię:
http://caniuse.com/#feat=websockets

W tej chwili około połowa użytkowników nie mogłaby zagrać w grę bazującą na web-socket.

Najwyraźniej nie słyszałeś o socket.io (http://socket.io), który fallbackuje do mniej fansi technologii gdy browser nie obsługuje WS... Są też serwisy chmurowe jak Pusher (http://pusher.com)...

Poza tym argument by w coś 'nie wchodzić' bo nie obsługuje tego jakiś stary browser (lub IE) to jeden z najpoważniejszych spowalniaczy dynamicznego rozwoju web...
Marek Surma

Marek Surma Twórca aplikacji
internetowych.

Temat: Node.js czy Apache/PHP

Łukasz Nowacki:

Najwyraźniej nie słyszałeś o socket.io (http://socket.io), który fallbackuje do mniej fansi technologii gdy browser nie obsługuje WS... Są też serwisy chmurowe jak Pusher (http://pusher.com)...

O! Ciekawa rzecz. Wprawdzie to tylko namiastka tego co powinno być, ale zawsze coś. Prawdopodobnie w miarę wpierania kolejnych technologii w przeglądarkach będą podmieniali te zamienniki z których korzystają teraz. Long Polling, Forever Iframe? Jednym słowem... w niektórych przeglądarkach nie ma to nic wspólnego z socket-ami. Tylko (że tak to nazwę) interfejs jest wspólny.
Poza tym argument by w coś 'nie wchodzić' bo nie obsługuje tego jakiś stary browser (lub IE) to jeden z najpoważniejszych spowalniaczy dynamicznego rozwoju web...

Jeżeli chodzi o Web Sockets to akurat nie mam na myśli starego browsera. Tylko te całkiem nowe.

IE nie wspiera i nie wiadomo kiedy będzie wspierał bo M$ dopiero robi eksperymenty. Opera 11 też nie do końca (trzeba włączać ręcznie). Jednak już sam brak wsparcia w IE mi wystarczy. Moi klienci chcą działający soft tu i teraz. Fajną alternatywą jest to co podałeś. Pomimo tego, że jest to stosowanie starych metod (choć nie tylko) przykrytych nową kołderką, to w to akurat bym wszedł :)

Pozdrawiam!

konto usunięte

Temat: Node.js czy Apache/PHP

Marek Surma:

Jeżeli chodzi o Web Sockets to akurat nie mam na myśli starego browsera. Tylko te całkiem nowe.

IE nie wspiera i nie wiadomo kiedy będzie wspierał bo M$ dopiero robi eksperymenty. Opera 11 też nie do końca (trzeba włączać ręcznie). Jednak już sam brak wsparcia w IE mi wystarczy. Moi klienci chcą działający soft tu i teraz. Fajną alternatywą jest to co podałeś. Pomimo tego, że jest to stosowanie starych metod (choć nie tylko) przykrytych nową kołderką, to w to akurat bym wszedł :)

Kto by się Operą przejmował... Ten browser na desktopy nie istnieje - jedynie w mobile się liczy.

Natomiast IE to niestety mur nie do przebicia dla niektórych, to fakt.

konto usunięte

Temat: Node.js czy Apache/PHP

Łukasz Nowacki:
Marek Surma:

Jeżeli chodzi o Web Sockets to akurat nie mam na myśli starego browsera. Tylko te całkiem nowe.

IE nie wspiera i nie wiadomo kiedy będzie wspierał bo M$ dopiero robi eksperymenty. Opera 11 też nie do końca (trzeba włączać ręcznie). Jednak już sam brak wsparcia w IE mi wystarczy. Moi klienci chcą działający soft tu i teraz. Fajną alternatywą jest to co podałeś. Pomimo tego, że jest to stosowanie starych metod (choć nie tylko) przykrytych nową kołderką, to w to akurat bym wszedł :)

Kto by się Operą przejmował... Ten browser na desktopy nie istnieje - jedynie w mobile się liczy.

Natomiast IE to niestety mur nie do przebicia dla niektórych, to fakt.
;o

U mnie Opera to główna przeglądarka do codziennego użytku (nie do developerki, więc zazwyczaj mam otwarty Chrome + Opera lub Mozilla + Opera).
Maciej Sikora

Maciej Sikora Programista
aplikacji
internetowych

Temat: Node.js czy Apache/PHP

Ja jestem całkowicie za nowymi rozwiązaniami takimi jak socket.io. Ale z przykrością muszę stwierdzić, że obecnie na tym nic poważnego nie da się napisać. Zostawiłem temat i czekam na nową wersję socket.io bo po ostatnim update przestało mi działać dobrze na chromie i ciągle mi socket odłącza, a spowodowane jest to innym standardem obsługiwanym przez chrome (tak doczytałem na wiki socket.io ). A na innych ciągle mi na long polling próbuje z różnym skutkiem. Jest to obecnie bardzo rozwojowa sprawa i ciężka do ogarnięcia. Czekam na lepsze czasy, a w tym czasie robię inne aspekty mojej appki.

konto usunięte

Temat: Node.js czy Apache/PHP

Kamil Brenk:

;o

U mnie Opera to główna przeglądarka do codziennego użytku (nie do developerki, więc zazwyczaj mam otwarty Chrome + Opera lub Mozilla + Opera).

"u mnie" !== "powszechnie używana przeglądarka"

Jednak gdy zajrzałem na http://ranking.pl/pl/rankings/web-browsers.html to przyznam, że zaskoczyło mnie to 7% o.O Musi być dość popularna w PL... Globalne statystyki chyba bardziej celują w 2-3%?

konto usunięte

Temat: Node.js czy Apache/PHP

Maciej Sikora:
Ja jestem całkowicie za nowymi rozwiązaniami takimi jak socket.io. Ale z przykrością muszę stwierdzić, że obecnie na tym nic poważnego nie da się napisać.

Oni są innego zdania:

https://github.com/joyent/node/wiki/Projects,-Applicati...

;)

konto usunięte

Temat: Node.js czy Apache/PHP

Łukasz Nowacki:
Kamil Brenk:

;o

U mnie Opera to główna przeglądarka do codziennego użytku (nie do developerki, więc zazwyczaj mam otwarty Chrome + Opera lub Mozilla + Opera).

"u mnie" !== "powszechnie używana przeglądarka"

Jednak gdy zajrzałem na http://ranking.pl/pl/rankings/web-browsers.html to przyznam, że zaskoczyło mnie to 7% o.O Musi być dość popularna w PL... Globalne statystyki chyba bardziej celują w 2-3%?
http://www.w3schools.com/browsers/browsers_stats.asp
zgadza się - nie sądziłem, że Opera ma tak niskie statystyki, dziwi mnie to trochę :) choć fakt, bywa zasobożerna i coraz chętniej sięgam po Chrome
Piotr Koszuliński

Piotr Koszuliński JavaScript ninja

Temat: Node.js czy Apache/PHP

Łukasz Nowacki:
Maciej Sikora:
Ja jestem całkowicie za nowymi rozwiązaniami takimi jak socket.io. Ale z przykrością muszę stwierdzić, że obecnie na tym nic poważnego nie da się napisać.

Oni są innego zdania:

https://github.com/joyent/node/wiki/Projects,-Applicati...

;)

Using Node, to nie znaczy using socket.io :P Sam jestem zwolennikiem wymuszania na użytkownikach update'ów i olewania betonu, ale to co muszę przyznać, to że websockety, póki co, są dosyć niestabilne. Potrafiły nam na jednym z DevMeetingów działać dla połowy z nas, dla drugiej wysypywały przeglądarkę (ta sama wersja Chrome'a). W dodatku socket.io samo w sobie mocno ciągle ewoluuje (dobrze, że teraz, a nie jak zdobędzie jeszcze większą popularność) i co jakiś czas wybucha. Tak więc na razie jest to rozwiązanie do zabawy i pokazówek.

Jeśli chodzi o Operę, to jest beznadziejna :P Jest tak opóźniona jeśli chodzi o implementację standardów, nie mówiąc już o draftach i propozycjach, że nie mogę na nią patrzeć :). To jest już jedyna przeglądarka, która nie ma zaimplementowanego ES5 (http://kangax.github.com/es5-compat-table/). Dla mnie, jako JS developera, to ją całkowicie dyskwalifikuje.Piotr Koszuliński edytował(a) ten post dnia 31.08.11 o godzinie 15:20

konto usunięte

Temat: Node.js czy Apache/PHP

Kamil Brenk:
http://www.w3schools.com/browsers/browsers_stats.asp

uojezu, w3schools...

http://w3fools.com

konto usunięte

Temat: Node.js czy Apache/PHP

Łukasz Nowacki:
Kamil Brenk:
http://www.w3schools.com/browsers/browsers_stats.asp

uojezu, w3schools...

http://w3fools.com
w3fools znam, choć w sumie dopiero teraz doczytałem:

(The statistics above are extracted from W3Schools' log-files, but we are also monitoring other sources around the Internet to assure the quality of these figures)

hehehe :)
Marek Surma

Marek Surma Twórca aplikacji
internetowych.

Temat: Node.js czy Apache/PHP

Łukasz Nowacki:
Kamil Brenk:
http://www.w3schools.com/browsers/browsers_stats.asp

uojezu, w3schools...

http://w3fools.com
Ależ ktoś ma bzika na punkcie zdołowania w3schools! I to nie jedna osoba! Toż to zwyczajna strona jakich wiele. Tyle energii włożonej aby zdyskredytować jaką stronkę. To jest śmieszne. Prędzej by zrobili swoją stronę zamiast zajmować się flame'owaniem. To jest to samo jakby nagle ktoś utworzył stronę przeciwko na przykład Onetowi i wpisywał na niej wszystkie uchybienia tego portalu. Ludzie nie mają co robić.
Marek Surma

Marek Surma Twórca aplikacji
internetowych.

Temat: Node.js czy Apache/PHP

Maciej Sikora:
A na innych ciągle mi na long polling próbuje z różnym skutkiem.

Dzięki za info. Szczerze mówiąc tego się spodziewałem :(



Wyślij zaproszenie do