Persistent HTTP connection i Rails

Zastanawiam się jak utrzymywać w Railsach otwarte połączenia - analogicznie do Facebookowego chatu.

Otwieramy połączenie HTTP i trzymamy je otwarte az serwer nie zacznie przesyłać wiadomości.

Czy jest w Railsach możliwość zrobienia tego w jakiś ‘w miarę ludzki’ sposób?

Chciałem napisać chat analogiczny do FB ale idea odpytywania co np 0.5 sekundy serwera nie bardzo mi się podoba (wydajność).

Domyślam sie ze muszę mieć wątkowy serwer wiec mongrel (chyba) odpada.

Jakieś pomysły? :slight_smile:

http://juggernaut.rubyforge.org/

Ostatnio bardzo dużo szumu robi node.js:


http://github.com/ry/node_chat

  • dla juggernaut. Prosty w użyciu i działa, ale wymaga flasha.

Znalazłem właśnie na RubyInside: http://feedproxy.google.com/~r/RubyInside/~3/1j_CrsMoLos/pusher-websocket-service-3246.html, co prawda wymaga HTMLa 5, ale zawsze warto przyglądać się najnowszym rozwiązaniom.

websocket
http://sigma.inf.ug.edu.pl/~kpluszcz/sem/2010/04/08/WebSockets/

no ale to nie ruszy ci na kazdej przegladarce wiec tylko jako zajawka

Niestety HTML5 to dalsza przyszłość, jednak jest dostępna implementacja klienta WebSocket we Flash+JS: http://github.com/gimite/web-socket-js