IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

[chat][AJAX]complexité?


Sujet :

JavaScript

  1. #1
    Membre éprouvé Avatar de hansaplast
    Homme Profil pro
    Artisant logiciel
    Inscrit en
    Septembre 2005
    Messages
    951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Artisant logiciel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 951
    Par défaut [chat][AJAX]complexité?
    bonjours, je doit , pour une de mes actions, mettre eu oeuvre un programme evenementielle...

    j'ai songé a créer un chat basé sur XMLHTTPRequest...

    d'apres vous quel est le degré de complexitée d'une telle entrprise?

    je sait que je donne peu de clef, mais, c'est que c'est juste une idée de projet...

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    complexitée ... c'est une compilation de complexe et excitée ?

    faudra de toute façon php coté serveur pour le backlog ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  3. #3
    Membre éprouvé Avatar de hansaplast
    Homme Profil pro
    Artisant logiciel
    Inscrit en
    Septembre 2005
    Messages
    951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Artisant logiciel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 951
    Par défaut
    vi, j'ai oublié de preciser :
    le php ne me pose aucun pb, j'ai une "certaine" maitrise...
    c'est le coté javascript qui m'interresse uniquement, n'ayant que tres peut pratiqué...
    j'aid eja lut quelques tuto, ca ne m'a pas l'air tres compliqué, mais avant de ma lancer, je prefere demander un avis...

  4. #4
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 684
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 684
    Par défaut
    disons qu'un chat php est d'une simplicité enfantine;,
    javascript d'ailleurs ne sert qu'à décorer une telle appli; donc rien que du bonheur dans ton projet!

  5. #5
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Par défaut
    l'avantage d'utiliser xmlhttp, c est d'eviter tous les rechargements intempestifs

  6. #6
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 684
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 684
    Par défaut
    si on veut... question de choix

  7. #7
    Membre éprouvé Avatar de hansaplast
    Homme Profil pro
    Artisant logiciel
    Inscrit en
    Septembre 2005
    Messages
    951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Artisant logiciel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 951
    Par défaut
    oki, merci

  8. #8
    Membre éprouvé Avatar de hansaplast
    Homme Profil pro
    Artisant logiciel
    Inscrit en
    Septembre 2005
    Messages
    951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Artisant logiciel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 951
    Par défaut
    j'aurait juste une info complementaire : y a t il un time out lors d'une requete envoyée de cette maniere?

    je songeait a faire un truc dnas le genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    C1.N-envoie d'une requete
    S     -stockage de l'@
    Cx   -envoie d'une linge
    S     -broadcast de la ligne a toutes les @ stockée
    C1.N-reception
    C1.N-envoie d'une requete
    ...
    (C : client, S : serveur)
    d'apres vous ca pourrait etre bien?
    plutot que de mettre un refresh toutes les n secondes?

    mais pour ca, faut pas de time out...

  9. #9
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Par défaut
    le timeout se fera coté serveur et pas coté client

    ou alors tu peux en mettre un toi meme, mais par defaut y en a pas coté client.

    Apres a toi de voir si tu fais des appels synchrones (bloquants) ou non

  10. #10
    Membre éclairé Avatar de grinder59
    Inscrit en
    Septembre 2005
    Messages
    710
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 710
    Par défaut
    petite astuce à laquelle je viens de penser (ça peut paraître bête comme réflexion, mais bon):

    la requête xmlhttp doit servir à ne récupérer que les nouvelles lignes de texte du chat et pas l'intégralité de la conversation... sinon ça fait des données (et donc de la bande passante) rapatriées pour rien...

  11. #11
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 684
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 684
    Par défaut
    un peu plus dur à gérer par JS mais intéressant!
    il va falloir jouer serré avec DOM;

    sinon, question bande passante, je ne crois pas qu'une ligne ou 20 lignes (ce qui correspond à une zone d'affichage normale) fasse la différence;

  12. #12
    Membre éclairé Avatar de grinder59
    Inscrit en
    Septembre 2005
    Messages
    710
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 710
    Par défaut
    ouais mais au bout d'un longue conversation, ça peut jouer, non?

  13. #13
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 684
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 684
    Par défaut
    ça dépend; personnellement, j'utilise un système d'affichage limité à la page et un commutateur "archives" permet de remonter dans la conversation; bref, je ne récupère jamais une conversation complète à chaque mise à jour;

  14. #14
    Membre éclairé Avatar de grinder59
    Inscrit en
    Septembre 2005
    Messages
    710
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 710
    Par défaut
    oui, c'est une autre solution permettant de pas récupérer à chaque fois la totalité de la conversation...

  15. #15
    Membre éprouvé Avatar de hansaplast
    Homme Profil pro
    Artisant logiciel
    Inscrit en
    Septembre 2005
    Messages
    951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Artisant logiciel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 951
    Par défaut
    Citation Envoyé par siddh
    le timeout se fera coté serveur et pas coté client

    ou alors tu peux en mettre un toi meme, mais par defaut y en a pas coté client.

    Apres a toi de voir si tu fais des appels synchrones (bloquants) ou non
    oki, merci

    j'ai encore une question :
    je pensait, a la reception d'une requete (1ere ligne), ne pas repondre.

    et ensuite, a la reception d'un texte d'une des quelquonque membre du chat, repondre a tous :
    =>stockage temporaire des @ dans un fichier texte, ou BDD.

    mais est il possible de faire ceci?
    un script PHP ne peut envoyer un message qu'a un destinataire, ou je eput, a l'aide d'une focntion developpée par ne secte, envoyer mon message a plusieures machines?

    (/me pense ne pas avoir ete assez clair...)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    -client 1,N  envoie son @
    -serveur ne repond pas
    -client 1,N toujours en attente
    -client X envoie un message a afficher
    -serveur le recoit, et le broadcast a tous les clients
    -clients 1,N recoivent le message
    vous pensez que c'est faisable?

  16. #16
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Par défaut
    d'apres toi a quoi servent les boucles

    plus serieusement, le client se mettra en attente sans probleme a condition que le serveur ne reponde pas mais la tu vas avoir le timeout du serveur au bout d un moment car en js tu vas faire un appel vers ton serveur donc le serveur reçoit une requete et ta durée d'execution de script demarre coté serveur.

  17. #17
    Membre éprouvé Avatar de hansaplast
    Homme Profil pro
    Artisant logiciel
    Inscrit en
    Septembre 2005
    Messages
    951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Artisant logiciel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 951
    Par défaut
    Citation Envoyé par siddh
    d'apres toi a quoi servent les boucles

    plus serieusement, le client se mettra en attente sans probleme a condition que le serveur ne reponde pas mais la tu vas avoir le timeout du serveur au bout d un moment car en js tu vas faire un appel vers ton serveur donc le serveur reçoit une requete et ta durée d'execution de script demarre coté serveur.
    je comprend ce que tu veut dire, l'execution d'un script php est de 30 secondes max (par defaut)...

    mais, je ne veut pas repondre a la requete du client :

    le client m'envoie une requete -> je stocke son @, mias je ne lui repond pas, et je termine mon script.
    des que je doit faire un broadcast, je lit toutes les adresses, et, la mon script envoie un message e tous les clients.

    donc, comme tu le voit, je ne eput pas avoir de time out coté php, car je procede en deux scrupts distincts.
    le pb, c'est que je ne sait pas comment faire (et surtout si c'est faisable) pour envoyer mon "paquet HTTP" a plusieurs navigateurs en un seul script (le second)
    je vait voir sur la doc php

    edit : je vient de realiser que, meme si je ne repond pas, apacha va quandmeme envoyer une apge vide, donc ca ne va pas passer :'(

    donc, tu as raison :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    une boucle, 
    {
    ->si bientot time out, envoi d'un truc vide
    ->si message, evoie du message
    ->sleep?
    }

  18. #18
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Par défaut
    va falloir passer par des sockets mais la ca va etre tendu

    il faudra de tout manière que tu reponde, meme par une reponse vide

  19. #19
    Membre éprouvé Avatar de hansaplast
    Homme Profil pro
    Artisant logiciel
    Inscrit en
    Septembre 2005
    Messages
    951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Artisant logiciel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 951
    Par défaut
    Citation Envoyé par siddh
    va falloir passer par des sockets mais la ca va etre tendu

    il faudra de tout manière que tu reponde, meme par une reponse vide
    passer par des sockets?

    entre qui et qui?

    le client ne peut pas en avoir, donc des sockets entre scripts php?

    sinon, juste une bdd ou un fic. texte, si vide, reponse vide, si remplit, renvoie du champ...

    ps : j'ai bien compris pour les sockets?

  20. #20
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Par défaut
    ben si tu veux faire une socket php, faudra au moins une applet coté client ...

    le soucis dans ce que tu veux faire, c est que php ne peut pas appeler une page cliente comme ca sans recevoir de requete http

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 10
    Dernier message: 30/08/2010, 19h25
  2. [AJAX] chat ajax blueimp phpbb3
    Par portu69 dans le forum AJAX
    Réponses: 0
    Dernier message: 17/11/2009, 12h14
  3. [AJAX] chat ajax sur phpbb3
    Par portu69 dans le forum AJAX
    Réponses: 0
    Dernier message: 28/09/2009, 10h39
  4. [AJAX] Chat Ajax tout comme tchatche.com
    Par IKATI dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 20/09/2007, 18h30
  5. [AJAX] Chat AJAX, ou chat FLASH ?
    Par Pepito2030 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 15/01/2007, 12h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo