2009-06-04 5 views
5

Je viens d'apprendre le moteur de poussée AJAX, mais il fonctionne sur Linux/Apache, ce qui n'est pas une option pour moi.Comment pouvez-vous envoyer des données à un client de page Web?

http://www.ape-project.org/

actuellement avec AJAX pour garder un courant page Je dois interroger le serveur fréquemment, ce qui est pas grand pour un site à fort trafic. L'option de pousser les données vers le client uniquement lorsque cela est nécessaire est une bonne option, mais nativement JavaScript ne supporte pas les sockets, AFAIK. Un truc que j'ai lu à propos de, mais le site est maintenant parti, est d'utiliser un module Flash pour gérer les communications socket et relayer le message à JavaScript. Le problème avec la recherche de cette approche est que "JavaScript push" en tant que mots-clés arrive avec la fonction de poussée pour les tableaux au lieu du contexte que je veux.

Comment établir une connexion permanente avec le serveur pour faire des communications push dans le navigateur? Ai-je besoin de Flash/ActionScript ou existe-t-il une autre option qui fonctionnerait avec tous les navigateurs actuellement actifs? (IE6/7/8, FF3, Safari, Chrome)

En ce qui concerne le serveur, j'ai également besoin de travailler sur les complications dues à la politique d'origine ainsi que la sécurité des ports. J'apprécie tout ce que vous pouvez souligner qui expliquera les options disponibles.

+0

J'ai trouvé quelques questions connexes qui conduisent à des réponses ... et d'autres questions. :) http://stackoverflow.com/questions/471780/asp-net-http-server-push-to-client http://stackoverflow.com/questions/50831/how-to-push-data- to-variété-of-different-client-types-in-near-real-time http://stackoverflow.com/questions/219868/client-notification-should-i-use-an-ajax-push-or- sondage http://stackoverflow.com/questions/847227/real-time-chat-with-push-notification – Brennan

Répondre

0

Ceci est intéressant, mais je n'ai rien lu sur les problèmes d'évolutivité sur ces pages Wiki. Que fait un serveur Web si vous avez 10 000 connexions ouvertes à interrogation longue? En outre, pour ceux qui ne connaissent pas les concepts sous-jacents, il est important de comprendre que pousser les données du serveur vers le client de manière ad-hoc est impossible et le sera toujours. Même si le protocole HTTP supportait cela, le réseau ne le ferait pas, en particulier s'il y a un pare-feu NAT impliqué. Par conséquent, toutes les solutions qui prétendent offrir une communication push serveur doivent s'appuyer sur des connexions initiées par le client, maintenues ouvertes et éventuellement expirées. J'ai des inquiétudes à ce sujet car cela doit avoir des conséquences négatives sur l'évolutivité et les performances du serveur.

+0

Il semble que facebook, et google utilisent de longues interrogations, et ils ne sont pas encore tombés. Ce n'est pas * impossible * par tous les moyens. – cgp

+0

Si vous souhaitez ouvrir une connexion à un client à partir d'un serveur et NAT est dans la façon dont la méthode de frappe de port peut être utilisée pour établir une connexion. Ensuite, vous pouvez maintenir une socket. Ma préoccupation est la limite du serveur pour garder beaucoup de sockets actives. Je voudrais au moins réinitialiser la connexion de temps en temps ou désactiver les clients inactifs si je peux détecter si le client est inactif. – Brennan

+0

Eh bien, altCognito, si Todd Hoff est juste sur son blog, alors l'investissement de matériel de 100 millions de dollars de Facebook l'an dernier a pris soin de cela. Mais l'article a quelques autres détails sur l'implémentation du serveur. De toute évidence, la longue interrogation n'est pas quelque chose que vous voulez faire sur IIS dans .Net, ou sur n'importe quel autre serveur web/plate-forme linguistique, où chaque connexion bloquée est en train d'attacher des ressources coûteuses. – cdonner

Questions connexes