2015-03-10 1 views
1

Je développe une application dans nodejs qui combine plusieurs sites intranet en 1. Jusqu'ici, j'ai utilisé requestjs pour faire des requêtes afin d'obtenir ce dont j'avais besoin. Je suis un peu bloqué sur la façon de faire la communication en temps réel entre le nodejs (avec express) et un site particulier qui a un login captcha. Je pense à un navigateur sans tête qui transmet le captcha à mon interface utilisateur, mais je ne sais pas comment commencer. Existe-t-il un tutoriel BON et à jour?Communication en temps réel entre nodejs et phantomjs ou tout autre navigateur sans tête

Répondre

1

Communication en temps réel est un buzz pour les gens du marketing, c'est aussi la raison pour laquelle vous vous sentez perdu. Si je vous ai bien compris, vous avez un serveur node.js qui regroupe plusieurs sites brouillés en même temps.

Voici la solution sur le papier (il faudra un certain effort pour coder tout cela - une tâche pour vous):

(Laissez le site A sont captcha)

  1. client se connecte au noeud serveur .js
  2. Le serveur Node.js exécute le script phantomjs à partir de la ligne de commande (le manuel Child Process vous aidera)
  3. Les scripts se brouillent. Site Un embrouilleur reçoit captcha et des cookies/formulaire avec des valeurs uniques pour ce captcha. Le script doit enregistrer l'état des cookies et un formulaire dans un fichier texte temporaire. Enregistrez l'image captcha dans un fichier temporaire. Exit
  4. Node.js vérifie si de nouvelles images captcha temporaires ont été créées dans un dossier donné. Si elles étaient - afficher à l'utilisateur
  5. ENTRÉES le captcha, envoie solution au nœud
  6. Si l'image temporaire a été nommé Captcha_Site_A.png puis enregistrez la solution à Captcha_Site_A.txt.
  7. Exécution du brouilleur de site Partie 2.
  8. La partie 2 recherche le fichier texte de la solution créé, restaure l'état des cookies et du formulaire, place la solution dans le formulaire et procède. Node.js reçoit ensuite le contenu du site.

Oui, il est un long voyage, mais vous obtenez ce que vous demandez :)

post-scriptum L'étape 9 de la réception du site Web peut être réalisée en: faisant le script Phantom imprimer les résultats au stdout, et faire en sorte que Node.js attrape la sortie (Reportez-vous à la documentation de Child Process). Vous pouvez également enregistrer les résultats dans le fichier temporaire.

+0

Merci pour l'indice ... J'ai oublié la partie que (par exemple) fantôme peut attendre l'existence d'un fichier, puis continuer son voyage ... –