Question

J'envisage quelques options pour pousser les données du serveur au client pour mon application web en temps réel.

J'ai mis en place un sondage sur la base (chaque client envoie des requêtes HTTP au serveur toutes les 30 secondes.) Application qui ne vraiment pas à l'échelle après 10 utilisateurs sont. Cette application. est construit en utilisant MySQL, PHP, HTML et jQuery.

Veuillez suggérer que l'on serait mieux adapté aux exigences ci-dessous - APE Vs Node.js

  1. devrait être en mesure de traiter au moins 400 connexions simultanées à un moment
  2. Server doit être capable de pousser des données à tous ces clients.
  3. Les clients allait envoyer des données à travers entre eux.
Était-ce utile?

La solution

Je vous suggère fortement de jeter un oeil à la Socket.IO . Il est une solution complète pour pousser serveur, qui comprend à la fois bibliothèque côté serveur (écrit en Node.js) et bibliothèque client JS qui est fait de manière transversale navigateur. Je ne vois aucune raison pour vous de mettre en œuvre votre propre code pour faire ce qui est déjà fait, le travail et testé.

Le seul cas que socket.IO ne traitera pas est votre troisième demande, mais qui est de toute façon impossible. Si je vous comprends bien, vous voulez deux clients de communiquer sans l'aide du serveur tiers? Vous ne pouvez pas changer HTTP en P2P, du moins pas maintenant.

Si d'autre part que vous vouliez dire de communiquer deux utilisateurs via votre serveur (faire quelque chose comme une conversation de deux personnes privées) qui est tout à fait faisable en utilisant socket.io.

Autres conseils

Même si tout le monde est en marche vers Node.js en ce moment, nous avons fait une application de chat basé sur APE et nous sommes très heureux avec elle.

APE offre ce que vous cherchez tout à fait « de la boîte », car il est une combinaison de côté serveur JS et un framework client APE_JSF qui fournit la fonctionnalité (et plus) que vous obtenez de socket.io.

Dans ce projet, nous avons poignée ~ 9000 utilisateurs simultanés avec des messages en temps réel . Un serveur nginx est mis en face de l'APE pour fournir deflate / support gzip

Cette configuration (sans nginx aussi) n'a aucun problème avec le trafic de vos besoins, même sur une machine « pas de fin si haut ».

Comme vous pouvez pousser les données à un « canal » ou un seul utilisateur, vous devriez être en mesure d'obtenir exactement ce que vous cherchez avec APE, de diffusion aux messages directs.

Si vous utilisez Apache au sein de votre pile existante puis, comme vous avez déjà dit, il y aura des problèmes avec vous mise à l'échelle des utilisateurs, même si vous utilisez longue interrogation au lieu d'un continue. Solution pourrait être d'utiliser le serveur web de haute performance comme nginx afin de gérer plusieurs connexions simultanées.

Sur les autres Node.js à la main est faite pour ce genre de connexion et de la concurrence il y a des paquets, comme socket.io , ce qui peut rendre votre vie de développeur beaucoup plus facile car il offre différents types d'options de transport avec des solutions de repli et d'autres fonctionnalités utiles.

Je ne le recommanderais singe pour des applications à grande échelle, son bien pour les applications de chat mais pour autant que les mises en chantier de navigateur de transport de données de masse client concerné à ralentir et écraser après un certain temps.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top