2017-08-31 3 views
0

Existe-t-il un serveur HTTP Ruby (comme httpd) pour les sites Web statiques avec un mode de surveillance qui met à jour le navigateur?Ruby http serveur web statique avec le mode montre?

Actuellement, si le site Web est en cours d'exécution dans httpd, je dois actualiser le navigateur après le changement de fichier.

Répondre

0

Ruby on Rails a ActionCable qui utilise des Websockets pour maintenir un navigateur à jour en utilisant une méthode de publication/abonnement.

Édition: est une implémentation websocket qui ne nécessite aucune structure, juste un serveur Web compatible Rack.

En fonction de vos besoins, des applications pré-assemblées peuvent être disponibles. Par exemple, si vous voulez un tableau de bord avec des widgets mis à jour en direct, vous pouvez utiliser Smashing.

+0

désolé - sans aller rubis sur des rails .... Je voulais quelque chose de simple, par exemple. nodemon pour JavaScript – Ruegen

+0

Faye & Smashing sont d'excellentes recommandations, mais je ne vois pas comment ils peuvent être utilisés à partir du terminal pour servir html statique comme httpd – Ruegen

0

En plus de la réponse de Marc, iodine est un HTTP Ruby et le serveur Websocket écrit en C.

Il arbore un service de fichiers statiques de base ainsi que le support natif pour les connexions Websocket (en utilisant un objet de rappel websocket).

Le service de fichiers statiques ne nécessite même pas une application Ruby. i.e. .:

$ iodine -www ./ 

iode supporte également pub/sub (avec ou sans Redis) hors de la boîte, le déplacement d'une grande partie de la charge de travail hors de la couche Ruby et dans le moteur à C. Il est possible d'exécuter de l'iode en mode monothread (en raison de sa conception événementielle), bien que la valeur par défaut utilise autant de threads et de processus que de cœurs sur la machine (qui préfère la concurrence aux performances). Lors de l'utilisation de Rails, l'iode peut être utilisé à la place d'ActionCable en attrapant des connexions Websocket en utilisant un middleware (personnalisé ou, par exemple, Plezi gem). Je suis partial, étant l'auteur, mais je pense que c'est une solution facile à mettre en œuvre et mes tests montrent qu'il est nettement plus performant.

+0

at-il une capacité de surveillance? Vous n'avez donc pas besoin d'actualiser le navigateur? – Ruegen

+0

@Ruegen - Je ne suis pas sûr de ce que vous voulez dire par "observateur". Si vous faites référence à un Websocket qui vous permet de mettre à jour des données en temps réel sans actualiser la page - oui, c'est la fonction de focalisation de l'iode. Iode utilise également ETags pour la validation du cache, donc si vous voulez dire "surveiller les frais de fichiers", vous pouvez dire que oui, mais le navigateur doit encore recharger la page afin de tester la validation du cache. – Myst

+0

Guard for rails dispose d'une gemme de rechargement en direct qui me permet de mettre à jour/actualiser automatiquement le navigateur lorsque j'écris un changement de fichier. Je voudrais cela dans httpd (ou un outil similaire). – Ruegen