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

Langage PHP Discussion :

Interface chat "IRC Like"


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2011
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2011
    Messages : 29
    Points : 15
    Points
    15
    Par défaut Interface chat "IRC Like"
    Bonjour à tous,

    Je poste ce message dans PHP, car c'est le langage principal de mon projet, et par conséquent le langage dans le quel je cherche une solution possible (Je suis ouvert à d'autre possibilités).

    Voilà la problématique :

    Il est question d’intégrer dans un projet, un chat (multi-canal), possédant quelques fonctions particulières. Ce chat doit être capable de tenir une charge d'au moins 500 utilisateurs sans impacter le reste des performances du server (Apache & co). Il doit gerer des commandes IRC de base tel que /msg /me /join /part /notice (et quelques autres), quelques alias de commandes spéciales, ainsi que des bricoles pas méchante. Le support doit être capable de déplacer les utilisateurs de salon en toute transparence suivant des paramètres transmit par php. (Un peu à la maniere des chat dans les MMORPG type World of warcraft)

    Solutions envisagées :

    Ce que je ne veux pas : Java, Flash et IFrame (si possible).

    En terme de serveur, ce que je connais le mieux est UnrealIRCd. Malheureusement, la mise en place d'un client pour ce genre de serveur peut s'averer fastidieuse voir impossible sans IFrame...

    Ensuite, il y a Jabber, avec eJabberd et une interface web. Là aussi, la plupart des client que j'ai pu voir possède une IFrame, et les quelques librairies permettant de developper un client sont difficile à maitriser.

    PHP+MySQL n'est même pas penssable, ainsi qu'un fichier texte type shoutbox. Il sagit là d'un "vrai chat".

    Autre ?

    Question :

    Connaissez vous d'autre solutions, ou, avez-vous déjà du mettre en place ce genre de structure ? Que faut-il prendre en compte ? Dans quel sens proceder ?

    J'ai vraiment besoin d'avis, de conseil et de feedback car c'est la première fois que je travail sur ce genre de projet.

    D'avance, je vous remercie

  2. #2
    Expert confirmé
    Avatar de Thes32
    Homme Profil pro
    Développeur PHP, .Net, T-SQL
    Inscrit en
    Décembre 2006
    Messages
    2 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur PHP, .Net, T-SQL

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 379
    Points : 4 853
    Points
    4 853
    Par défaut
    Salut,

    As tu regarder PHP free chat ? Cependant je ne sais pas quelle charge il peut tenir pour ne pas l'avoir déployé.
    Développeur | Zend Certified Engineer

    Étapes Pour mieux se servir du forum:
    1. Commencez par lire les cours et tutoriels ;
    2. Faites une recherche;
    3. Faites un post si rien trouvé dans les deux étapes précédentes en respectant les règles;

    Nix>_Rien n'est plus pratique que la théorie

  3. #3
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    PHP c'est pas fait pour, mais regarde du coté des WebSocket

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2011
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2011
    Messages : 29
    Points : 15
    Points
    15
    Par défaut
    Bonjour,

    Merci pour ta réponse.

    Cependant, il semblerait que ce soit plus une usine à gaz qu'autre chose. D'après ce que j'ai compri, il utilise des fichiers pour stocker les messages, avec possibilité de MySQL et IRC backend. Je doute la charge supportable sois bien énorme, et une certaine lenteur doit s'installer dans le traitement des évènements.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2011
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2011
    Messages : 29
    Points : 15
    Points
    15
    Par défaut
    stealth35, je suis ouvert à d'autre solution, comme python ou perl. Mais l'integration dans une page déjà constitué peut être farfelu...
    Si tu as des infos, j'suis preneur

    De plus, les WebSocket ne plus supporté par les navigateurs suite à une faille dans l'API. Sinon la solution semblait être prometteuse !

  6. #6
    Expert confirmé
    Avatar de Thes32
    Homme Profil pro
    Développeur PHP, .Net, T-SQL
    Inscrit en
    Décembre 2006
    Messages
    2 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur PHP, .Net, T-SQL

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 379
    Points : 4 853
    Points
    4 853
    Par défaut
    Citation Envoyé par OnaStick Voir le message
    Bonjour,

    Merci pour ta réponse.

    Cependant, il semblerait que ce soit plus une usine à gaz qu'autre chose. D'après ce que j'ai compri, il utilise des fichiers pour stocker les messages, avec possibilité de MySQL et IRC backend. Je doute la charge supportable sois bien énorme, et une certaine lenteur doit s'installer dans le traitement des évènements.
    Ok, pas de possibilité d'extension ? en changeant le système de stockage par exemple ? (utiliser à la place de mysql des engines plus rapide comme solr ou berkeleydb...)
    Développeur | Zend Certified Engineer

    Étapes Pour mieux se servir du forum:
    1. Commencez par lire les cours et tutoriels ;
    2. Faites une recherche;
    3. Faites un post si rien trouvé dans les deux étapes précédentes en respectant les règles;

    Nix>_Rien n'est plus pratique que la théorie

  7. #7
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    Citation Envoyé par OnaStick Voir le message
    stealth35, je suis ouvert à d'autre solution, comme python ou perl. Mais l'integration dans une page déjà constitué peut être farfelu...
    Si tu as des infos, j'suis preneur
    tu parles uniquement de langages coté serveur, le problème vient du coté client qui est ultra limité en terme de connexion socket.
    peut importe la technologie serveur, ça ne changera rien.


    Pour le WebSocket, c'est pareil il va te falloir un serveur (node.js par exemple)

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2011
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2011
    Messages : 29
    Points : 15
    Points
    15
    Par défaut
    Citation Envoyé par Thes32 Voir le message
    Ok, pas de possibilité d'extension ? en changeant le système de stockage par exemple ? (utiliser à la place de mysql des engines plus rapide comme solr ou berkeleydb...)
    Le fait est que la charge va surement augmenter rapidement, donc même avec quelque chose de rapide, si la charge d'utilisateur est multiplié par 2 ou 3, on en reviendrai au même point

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2011
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2011
    Messages : 29
    Points : 15
    Points
    15
    Par défaut
    Citation Envoyé par stealth35 Voir le message
    tu parles uniquement de langages coté serveur, le problème vient du coté client qui est ultra limité en terme de connexion socket.
    peut importe la technologie serveur, ça ne changera rien.


    Pour le WebSocket, c'est pareil il va te falloir un serveur (node.js par exemple)
    Ca m'a l'air bien fragile tout ça. M'enfin, comme dit plus haut, vu la polémique autour de cette fonctionnalité, et les navigateurs qui refuse de la supporter du à cette fameuse faille, je prefere m'en passer.

  10. #10
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    Citation Envoyé par OnaStick Voir le message
    Ca m'a l'air bien fragile tout ça. M'enfin, comme dit plus haut, vu la polémique autour de cette fonctionnalité, et les navigateurs qui refuse de la supporter du à cette fameuse faille, je prefere m'en passer.
    Si tu ne veux aucune technologies clientes, ni serveurs, ton projet n'est pas possible.

  11. #11
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2011
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2011
    Messages : 29
    Points : 15
    Points
    15
    Par défaut
    C'est pas que je ne veux pas, c'est que celle que tu me proposes là ne va plus être supporter par tout les grands navigateur. Dans ce cas, elle n'a donc plus aucune utilité ta solution. et je doute qu'elle puisse tenir d'énorme charge. sinon c'était très prometteur.

    Mais je reste ouvert à d'autre proposition plus fiable à l'heure actuelle. Les contraintes ne sont pas énormes, pas de flash, pas de java, pas de iframe (mais là c'pas une obligation je peux m'en accomoder), pas de fichier, pas de base de donner.

  12. #12
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    Citation Envoyé par OnaStick Voir le message
    C'est pas que je ne veux pas, c'est que celle que tu me proposes là ne va plus être supporter par tout les grands navigateur. Dans ce cas, elle n'a donc plus aucune utilité ta solution.

    Mais je reste ouvert à d'autre proposition plus fiable à l'heure actuelle. Les contraintes ne sont pas énormes, pas de flash, pas de java, pas de iframe (mais là c'pas une obligation je peux m'en accomoder), pas de fichier, pas de base de donner.
    je te parlai aussi du reste comme java et flash et sans autre deamon, ce que tu cherches à faire sans tous ça n'est tout simplement pas possible.

  13. #13
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 691
    Points : 20 222
    Points
    20 222
    Par défaut
    et je doute qu'elle puisse tenir d'énorme charge
    Tu parle de tenir la charge depuis le début du thread alors que tu semble vouloir faire une interface client.
    Celui qui doit tenir la charge c'est le serveur (deamon irc ou jabber si j ai bien compris), pas le client. Au pire des cas ton client va recevoir quelques kb de texte , rien de bien méchant.
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  14. #14
    Expert confirmé
    Avatar de Thes32
    Homme Profil pro
    Développeur PHP, .Net, T-SQL
    Inscrit en
    Décembre 2006
    Messages
    2 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur PHP, .Net, T-SQL

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 379
    Points : 4 853
    Points
    4 853
    Par défaut
    Citation Envoyé par OnaStick Voir le message
    Ca m'a l'air bien fragile tout ça. M'enfin, comme dit plus haut, vu la polémique autour de cette fonctionnalité, et les navigateurs qui refuse de la supporter du à cette fameuse faille, je prefere m'en passer.
    Comment tu fais pour savoir si c'est fragile ? juste par le nom ? Dire que nodejs est fragile c'est quand même pas tenable.
    Développeur | Zend Certified Engineer

    Étapes Pour mieux se servir du forum:
    1. Commencez par lire les cours et tutoriels ;
    2. Faites une recherche;
    3. Faites un post si rien trouvé dans les deux étapes précédentes en respectant les règles;

    Nix>_Rien n'est plus pratique que la théorie

  15. #15
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2011
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2011
    Messages : 29
    Points : 15
    Points
    15
    Par défaut
    Citation Envoyé par Thes32 Voir le message
    Comment tu fais pour savoir si c'est fragile ? juste par le nom ? Dire que nodejs est fragile c'est quand même pas tenable.
    De par les exemples de mise en oeuvre que j'ai trouvé sur le web. Après c'était un avis perso, j'ai le droit de me tromper aussi

    je te parlai aussi du reste comme java et flash et sans autre deamon, ce que tu cherches à faire sans tous ça n'est tout simplement pas possible.
    Oullalah... C'est lourd d'être prit pour un con... Il faudrait lire les topics sérieux :

    - Flash et Java sont des contraintes, c'est à dire que même si ca me plait pas de faire sans, comme MySQL. J'applique une consigne.

    - Je suis ouvert à toutes propositions, mais quand on me dit websocket => Websocket. J'suis désolé, c'pas utilisable en prod...

    A partir de là, il reste quelle solution valable ?

    peut-être CGI:IRC par exemple, vous en pensez quoi ? un truc plus leger serait plus facilement adaptable et modifiable...

    m'enfin bref..

  16. #16
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    Citation Envoyé par OnaStick Voir le message
    A partir de là, il reste quelle solution valable ?
    reste plus grand chose, pour le CGI, le problème est que c'est de la requête en continu pour le client.

    Pour le reste merci de resté correct.

  17. #17
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2011
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2011
    Messages : 29
    Points : 15
    Points
    15
    Par défaut
    Moi côté serveur, je m'en cogne un peu de ce qu'il y a, tant que ca répond à mes besoins. Il faut juste que l'impact sur le reste sois minime, tout sera sur un seul serveur (au début).

    les clients actuel comme mibbit fonctionne de quelle maniere ? (j'ai pas besoin d'un d'utre aussi compliqué et complet ^^)

  18. #18
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    de l'AJAX comme tout les clients sans plugin.

  19. #19
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2011
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2011
    Messages : 29
    Points : 15
    Points
    15
    Par défaut
    Ca d'accord, mais qu'est ce qui maintient la connexion aec le server ? du php sans doute, mais de qui'elle maniere ? et jax est utilisé comment ?

    Parce que bon, une boucle php maintient une connexion, mais ajax ne peut pas itransmettre de réponse tant le script php ne se termine pas.

  20. #20
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    Citation Envoyé par OnaStick Voir le message
    Ca d'accord, mais qu'est ce qui maintient la connexion aec le server ? du php sans doute, mais de qui'elle maniere ? et jax est utilisé comment ?

    Parce que bon, une boucle php maintient une connexion, mais ajax ne peut pas itransmettre de réponse tant le script php ne se termine pas.
    derriere t'as un démon qui qui traitent les requêtes, tu peux faire un démon (pas un page) en php, c'est que je te dit depuis de debut le client n'est pas important le principale c'est qu'il y'a coté serveur,

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

Discussions similaires

  1. Quote et double quote
    Par aktos dans le forum Langage
    Réponses: 8
    Dernier message: 05/01/2007, 19h55

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