étant jeune développeur je me pose pas mal de question sur
l’architecture à adopter pour faire un chat avec Ruby.
Le programme serait juste une page web classique ruby que mon serveur
WEBrick ou Mongrel hébergerait, rien de
compliqué.
Le problème que je me suis posé est la façon dont ça marcherait … si
je demande à rafraichir la page de texte dans laquelle je viens
d’envoyer un message : ok mais comment envoyer l’information à tous
les clients qui ont aussi cette même page.
La réponse est peut être évidente mais je n’ai pour l’instant aucune
idée de faire marcher le gigot ^^
A mon avis, il faut voir le problème dans l’autre sens. C’est à dire
que ce sont les clients qui viennent chercher auprès du serveur s’il y
a des nouveaux messages
une écoute active des clients sur le serveur … on peut faire ça de
façon “léger” sous ruby sans occuper trop de temps ( désolé les cours
de système d’exploitation m’ont quelque peu amoché la cervelle là
dessus )
zam en mode vacance demain aura le temps d’y songer à la belle étoile
^^
Le problème que je me suis posé est la façon dont ça marcherait … si
je demande à rafraichir la page de texte dans laquelle je viens
d’envoyer un message : ok mais comment envoyer l’information à tous
les clients qui ont aussi cette même page.
Disons que c’est tout le problème du protocole HTTP. Il est défini
comme “stateless”. En gros (mais tout le monde l’avais compris) le
serveur ne connais pas ces clients.
La notion de session a été plus ou moins créé (coté serveur ou via les
cookies) pour pallier a ce manque.
Alors soit tu fais ton système de chat en client serveur avec un autre
protocole que HTTP, soit effectivement, c’est aux clients d’aller
pecher l’information (via du javascript).
Après c’est une question de point de vue, comme bien souvent
Zam² de retour de vacances
hum … j’ai des problèmes pour installer shooting_star …
je suis derrière un proxy, j’ai du chercher les gemmes et les
installer une à une mais quand j’ai fini la manip avec les dépendances
il me dit qu’il arrive pas à installer shooting_star
gem_make.out--------------------
ruby extconf.rb i -b shooting_star-3.2.1.gem
checking for sys/epoll.h… no
checking for sys/event.h… no
epoll or kqueue required.
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers. Check the mkmf.log file for more
details. You may need configuration options.
sous Windows. Il utilise les appels systèmes epoll ou kqueue
qui existent sous Linux, normalement également sous FreeBSD,
donc vraisemblablement aussi dispo sous NetBSD, OpenBSD, MacOsX.
hum … j’ai des problèmes pour installer shooting_star …
je suis derrière un proxy, j’ai du chercher les gemmes et les
installer une à une mais quand j’ai fini la manip avec les dépendances
il me dit qu’il arrive pas à installer shooting_star
On dirait que tu es sous WinWin ? Shooting Star ne fonctionne pas
sous Windows. Il utilise les appels systèmes epoll ou kqueue
qui existent sous Linux, normalement également sous FreeBSD,
donc vraisemblablement aussi dispo sous NetBSD, OpenBSD, MacOsX.