Simuler un serveur comet (en push) en php et js

Soyez le premier à donner votre avis sur cette source.

Vue 5 542 fois - Téléchargée 350 fois

Description

Aucune description n'est fournie pour ce projet

Codes Sources

A voir également

Ajouter un commentaire Commentaires
Messages postés
24
Date d'inscription
vendredi 11 décembre 2009
Statut
Membre
Dernière intervention
30 mars 2011

Remplace : " il bous faut donc " par " il vous faut donc ".

sinon moi ça charge depuis 25 minutes sous Internet Explorer et Mozilla
Messages postés
487
Date d'inscription
dimanche 5 octobre 2003
Statut
Membre
Dernière intervention
1 septembre 2011

le script fonctionne en fait sur mon mozz, c'est juste que je m'attendais à voir les numéros s'afficher un à un (c'est le but du script) mais en fait il sont apparut tous d'un bloc après que j'ai tué le procéssus qui tournait en boucle infinie. Un truc qui serait pas mal à rajouter à ton script, c'est un bouton 'Stop' qui commanderait au script "serveur" de s'arrêter (sinon, merci le(s) zombi(s))...

===========================================================
>> Sinon l'intérêt de mon script est aussi de pouvoir l'utiliser uniquement avec HTTP
Sauf que si je désactive le javascript dans mon navigateur, ton script ne fonctionnera pas...

===========================================================
>> J'espere que tu as fait un lapsus
Non, malheureusement, je n'ai pas fais de lapsus.

>>c'est la porte ouverte a plein de problemes...
Lesquels?

>> En effet, je les imagine mal te laisser ouvrir des ports sur leur serveur
Tu as raison, ce n'est possible qu'en serveur dédié.

Sinon, pour ce qui est des failles de sécurités, ça dépend... de ton appli. Tu peux laisser tout les numéros de ports passer dans ton parfeu. Si tu n'as pas d'appli qui écoute derrière, c'est sans danger.

=================================================

Je confirme ce que j'ai dit, à savoir que je préfère (pour l'instant) utiliser uniquement le mode synchrone. J'ai eu plusieurs fois le problème avec mozz qui restait en attente de données et ne passait jamais en state 4.
Maintenant, noby's perfect (and my name is nobody... ha ha ha) et je peux très bien me tromper dans l'algorithme d'appel.

Par contre, la chose que j'aime bien avec le mode synchrone, c'est d'être sûr que le serveur m'ai répondu avant le lui envoyer d'autres infos. Disons que si le premier paquet est passé à la trape, et qu'au bout de 15 secondes (variable en fonction de ce que l'on fait) je n'ai toujours pas de signe de vie de mon serveur, alors je renvois la trame.

"Ouah, c'est lourd comme traitement" me direz-vous?
Oui c'est vrais, mais en même temps, c'est comme ça que fonctionne Internet. La fiabilité des informations que l'on envoit et que l'on reçoit tient dans la répétition et l'attente de réponse. Quand on télécharge un fichier, le serveur vous envoit une ou plusieurs trames et attend un "aknowledge' de notre ordi. En l'absence de ce signal, il renvoit le paquet après un temps déterminé par le TTL (time to live). Si au bout de plusieurs paquets répétés il ne reçoit toujours pas de réponse, alors il considère que la connexion est morte et met fin au traitement.

Donc oui, je persiste, je préfère le mode synchrone. Mais libre à vous de choisir le mode que vous voulez... puisque les deux fonctionnent...
Messages postés
11
Date d'inscription
mercredi 14 février 2007
Statut
Membre
Dernière intervention
5 juin 2010

Bon, désolé, petit ramage du serveur au moment ou j'ai posté, du coup j'ai posté deux fois la nouvelle version :P.

Sinon l'intérêt de mon script est aussi de pouvoir l'utiliser uniquement avec HTTP. Ca permet de le faire simplement avec juste apache et php, et ca fonctionne aussi derrière un proxy HTTP par exemple.

Sinon le synchrone, y'a la dernière version d'opera qui gère ca remarquablement bien maintenant. Même au niveau des alert, seule l'onglet concerné est bloqué, le reste du navigateur non, c'est vraiment agréable à utiliser (et mieux pour tester aussi quand on veut afficher ses variables avec alert mais qu'on est dans une boucle ^^).
Messages postés
239
Date d'inscription
vendredi 20 octobre 2006
Statut
Membre
Dernière intervention
20 avril 2009

> Pour ce qui est de mozz, ben j'ai la dernière version. Pero, quand
> j'utilise AJAX, j'evite d'utiliser le mode asynchrone car moz ne le
> gère pas super (d'après que...). Donc je me mets toujours en synchrone
> comme ça je suis sûr que ça marche pour tout le monde...

J'espere que tu as fait un lapsus, parce qu'utiliser AJAX en synchrone, c'est la porte ouverte a plein de problemes... (et en plus, l'asynchrone fonctionne tres bien sur tous les navigateurs que j'ai teste jusque la (IE 6, 7 et 8, FF 1.5 a 3.6, Chrome 5)).

La plupart des navigateurs sont completement scotches pendent une requete synchrone (plus de refresh de la page, plus de gifs animes, ...).

A part quelques cas tres particuliers, le synchrone est a proscrire ! (et encore, on doit pouvoir s'en passer mais ca simplifie bien la vie dans quelques cas).

Sinon pour faire un stream_socket_accept() dans un script lance par une page PHP, ca doit marcher "a la maison" mais je serai etonne que dans le cas d'un hebergement professionel ca fonctionne (a moins d'avoir un serveur dedie... et encore). En effet, je les imagine mal te laisser ouvrir des ports sur leur serveur (bonjour le trou de securite...).

Eric
Messages postés
487
Date d'inscription
dimanche 5 octobre 2003
Statut
Membre
Dernière intervention
1 septembre 2011

Sebcap26>>Le problème d'un canal en full duplex, c'est que PHP ne gère pas ca non plus

Ben justement si. Avec la fonction stream_socket_accept() tu dis à ton script php d'attendre des connexions en socket. Je te mets un lien vers un exemple de coucou47:
http://www.phpcs.com/codes/PROXY-HTTP-SAUVEZ-VOS-VIDEOS-PREFEREES_47616.aspx


Pour ce qui est de mozz, ben j'ai la dernière version. Pero, quand j'utilise AJAX, j'evite d'utiliser le mode asynchrone car moz ne le gère pas super (d'après que...). Donc je me mets toujours en synchrone comme ça je suis sûr que ça marche pour tout le monde...
Afficher les 13 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.