Les Websockets sont une technologie cool et de pointe intégrée à HTML5. Fondamentalement, vous pouvez ouvrir une prise Web pour permettre une communication bidirectionnelle persistante avec un serveur Web. Le client (interface utilisateur) peut envoyer spontanément des messages, et le serveur peut également envoyer des messages.
La technologie existante (JavaScript) exige que tout soit démarré par le client - le serveur ne peut rien envoyer au client qu'il n'a pas demandé. Les scripts doivent donc être constamment actualisés et demander de nouveau des données qui n'ont peut-être pas changé. Les Websockets fonctionnent davantage sur une base " push " et permettent aux nouvelles données de descendre à tout moment.
Malheureusement, la plupart (tout ce que je peux trouver, de toute façon) des implémentations Websocket nécessitent une application serveur spécifique pour fonctionner. Les gens exécuteront Apache sur les ports 80 et 443 (http et https) et exécuteront un autre système (généralement Node.js) sur un autre port (par exemple 8000 ou 8080) pour gérer les demandes de socket Web.
Cela fonctionne, bien sûr, mais il a quelques inconvénients.
J'ai un plugin que je veux construire qui bénéficierait grandement de l'utilisation de websockets dans WordPress. Mais si un utilisateur doit installer un deuxième serveur Web (généralement impossible pour les personnes ayant un hébergement partagé), cela ne fonctionnera pas comme un plugin.
Donc, pour ceux d'entre vous qui ont de l'expérience, comment pourriez-vous rendre WordPress compatible avec les websockets? Souhaitez-vous faire WordPress gérer la communication elle-même, ou regrouper un autre script de mini-serveur dans le plugin? Si vous l'avez déjà fait, comment l'avez-vous accompli sans casser WordPress lui-même?
Des ressources possibles?
Mise à jour 21/09/11
Avec toutes les discussions sur la façon dont Apache (le serveur le plus couramment installé pour exécuter WP sur un hôte partagé) ne peut pas vraiment gérer les websockets nativement, je me demande une alternative. Plusieurs plugins (JetPack, par exemple) communiquent avec un service externe ou une API pour générer du contenu.
Stats demande le contenu d'Automattic. Akismet envoie des données dans les deux sens à partir d'un serveur externe. Après la date limite soumet le contenu au moment de la publication. Quelques outils SEO font des va-et-vient via des systèmes externes.
Donc, comme alternative au logement du code websocket dans un plugin WordPress, serait-il possible d'héberger un service websocket dans un emplacement central et d'avoir un frontend WordPress interagir avec cela à la place?