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

Développement Discussion :

Chat basé sur des sockets php5


Sujet :

Développement

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 3
    Points : 4
    Points
    4
    Par défaut [Résolu] Chat basé sur des sockets php5
    Salut,

    On m'a chargé de développer un module de chat en php5 utilisant des sockets. Je me suis largement inspiré du tutoriel de Stephane Eyskens tout en changeant légèrement le principe puisque je dois gérer des conversations deux à deux et non une chat-room globale.
    J'ai adressé un mp à Stéphane mais peut-être que vous aurez des éléments de réponse ...
    Visiblement, c'est plus un problème de communication réseau que de code php d'où le choix du forum.

    Donc les clients s'inscrivent via un formulaire et sont dès lors considérés comme connectés.
    Ils reçoivent la liste des connectés et des messages qui leurs sont destinés via une page rafraîchie régulièrement. A partir de cette page, ils peuvent ouvrir une communication avec un autre connecté en ouvrant un popup qui contient deux frames.

    La frame du haut permet de suivre la conversation et est liée à la socket du client (stockée côté serveur) sur laquelle le serveur enverra du javascript pour ajouter les messages.

    La frame du bas est un simple formulaire avec un peu de php pour gérer l'envoi sur la socket serveur.

    Au final, ça fonctionne impeccable avec Firefox mais j'ai un gros soucis avec IE : le formulaire de message n'est pas affiché sauf si IE est lancé sur la machine sur laquelle le serveur est lancé (alors que je n'utilise même pas l'adresse de la boucle locale ! )... et même dans ce cas, si on ouvre une autre popup vers un autre client, le formulaire ne s'affiche pas (jusqu'à ce qu'on ait fermé la première).

    Tout se passe comme si IE écoutait attentivement la socket mais refusait de faire quoi que ce soit d'autre pendant ce temps.

    Avez-vous déjà eu des soucis de ce genre avec IE ou avez vous une idée de ce qui peux se passer ?

    Merci à ceux qui m'ont lu jusque là.

    Le code est adressable sur simple demande

    Bertrand

  2. #2
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 3
    Points : 4
    Points
    4
    Par défaut [Résolu]
    Ca viendrait de IE qui, semble-t-il, respecte à la lettre la RFC 2068 et limite donc le nombre de connexions HTTP/1.1 simultanées sur un même serveur à 2 et les connections HTTP/1.0 à 4 !

    Extrait de la RFC 2068 (paragraphe 8.1.4) :
    "Clients that use persistent connections SHOULD limit the number of
    simultaneous connections that they maintain to a given server. A
    single-user client SHOULD maintain AT MOST 2 connections with any
    server or proxy. A proxy SHOULD use up to 2*N connections to another
    server or proxy, where N is the number of simultaneously active
    users. These guidelines are intended to improve HTTP response times
    and avoid congestion of the Internet or other networks."

    J'ai pu modifier ce paramètre via le registre en modifiant/créant des clefs sous HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings
    Créer ou modifier les clefs suivantes :
    MaxConnectionsPerServer (en REG_DWORD) : valeur par défaut = 2
    (nombre de connections simultanées en HTTP/1.1)
    MaxConnectionsPer1_0Server (en REG_DWORD) : valeur par défaut = 4
    (nombre de connections simultanées en HTTP/1.0)

    Attention, ça marche sous IE6 sous XPsp2, pour les autres, je garantie pas .... A vérifier.

    Avec ça, mon appli fonctionne.

    Un mystere persiste : firefox semble être paramétré de la même façon et pourtant, il accepte de dépasser cette limite ... Si quelqu'un a des infos là-dessus, ça m'intéresse.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2007] Gestion de stock basé sur des nomenclatures produits
    Par simply_trunks dans le forum Modélisation
    Réponses: 1
    Dernier message: 14/05/2009, 23h22
  2. Réponses: 6
    Dernier message: 13/11/2007, 12h06
  3. Création de graphe basé sur des statistiques
    Par Tigrou35 dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 11/10/2007, 11h34
  4. Algo basé sur des nombres
    Par Kijer dans le forum Algorithmes et structures de données
    Réponses: 15
    Dernier message: 12/12/2006, 12h46
  5. C -> Perl : Lecture ecriture sur des Sockets
    Par caesarvanou dans le forum Programmation et administration système
    Réponses: 2
    Dernier message: 05/05/2006, 11h20

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