Developpement chat php

WRInaute accro
Bonjour,
Pour mon nouveau projet, je suis entrain de développer un chat php.
Mais ma question n'est pas comment faire le chat...c'est fait.... il fonctionne trés bien!!
Ma question est plutôt......comment indiquer à X ou Y qu'une personne essaie de le contacter par MP????
Car j'ai tablé sur le pseudo du connecté, un lien qui ouvre un MP.....mais comment lui indiqué qu'une autre personne essaie de le contacter???

En prenant son ip et faire quoi...puisque c'est agir sur son ordi, non??

Besoin d'aide merci!!!
 
WRInaute accro
J'espère pour toi que tu es sur un serveur dédié !
Parce que sinon, dès que tu aura un nombre satisfaisant de visiteurs (disont, une vingtaine (ce qui est peu)) ton application va commencer à consommer beaucoup de ressources.

Autrement, pourquoi pas une popup ?
 
WRInaute accro
passion a dit:
OUI......je fais un raffraichissement automatique à chaque nouveau message

Un rafraichissement de la page vue par A quand B poste un nouveau message ? ? J'ai du mal à te suivre sur le fonctionnement ... autrement en effet j'espère que tu as un bon hébergement ..
 
WRInaute accro
Oui je suis sur serveur dédié...pour ce projet...j'ai pris un compte "pro" chez 1&1 avec 8 Go.
Mais oui, c'est ce que je fais...je t'explique:
Tous mes abonnés (j'espère..loool) se retrouvent dans la chambre commune et peuvent en cliquant sur le pseudo activer une pop-up qui va ouvrir une page mp......mais comment indiquer au destinataire qu'il reçoit un message....par une fenêtre pop-up lui indiquant qu'il est contacté???...mais comment faire une pop-up automatique???
 
WRInaute accro
Eh bien, lorsque tu recharge ta page, si tu voie que la personne a un message privé qu'il n'a pas encore lu, tu ouvre le popup.

C'est de la consommation de ressources pour rien ca. Pourquoi ne pas avoir opté pour un salon IRC avec un applet java ?
C'est prévu spécialement pour !
 
WRInaute accro
kazhar a dit:
Eh bien, lorsque tu recharge ta page, si tu voie que la personne a un message privé qu'il n'a pas encore lu, tu ouvre le popup.

C'est de la consommation de ressources pour rien ca. Pourquoi ne pas avoir opté pour un salon IRC avec un applet java ?
C'est prévu spécialement pour !

+1

pour le plaisir de programmer en php sans doute ...
 
WRInaute accro
Tu en connais des bonnes adresses??
Oui je sais les chats irc sont plus rapides et moins consomateurs de ressources mais ils sont hébergés sur d'autres serveurs qui pourrissent les chats avec pub et autres. Et je n'ai pas envie que d'ici, 6 mois , mon chat irc me lâche car le site IRC aura migré ou autre.
C'est pourquoi j'avais opté pour la sécurité!!
Mais c'est vrai que je pourrais de cette façon me simplifier la vie!! :p et mon serveur!!!

Auriez-vous de bonnes adresses???
Ce que je n'aimes pas dans les chats irc.....c'est qu'ils donnent des portes pour aller sur d'autres chambres et donc tu perds non seulement ta clientèle mais aussi ton côté privé!!
 
WRInaute accro
Hum
Passe donc sur le chat de WRI (tu a un lien 'chat' en haut)
Tu verra que l'on est très peu embetés par les spams, floods et autres, que l'ambiance est bon enfant.
Et au pire, il est tout à fait possible de modérer toi même ton salon.
 
WRInaute accro
passion a dit:
Auriez-vous de bonnes adresses???
Ce que je n'aimes pas dans les chats irc.....c'est qu'ils donnent des portes pour aller sur d'autres chambres et donc tu perds non seulement ta clientèle mais aussi ton côté privé!!
Tu peux gagner des visites aussi :).

Comme cela a été dit, tu peux aussi installer ton propre serveur IRC, c'est pas très dur, et là aucun soucis.

Sinon, pour l'indépendance vis-à-vis d'un serveur IRC autre : un enregistrement DNS CNAME (irc IN CNAME irc.le.serveur.irc) et tu communiques/utilises irc.tonsite.tld ;).
 
Nouveau WRInaute
Bonjour,

Je me suis inscrit ici presque EXPRÈS pour participer à CETTE conversation. Simplement parce que cette fois la coupe est pleine!
La question de Passion, postée il y a déjà quelques années (et tout à fait pertinente), n'a pas trouvé de réponse CLAIRE. Au lieu d'essayer de le guider, de l'encourager, on vient lui dire de ne pas se prendre la tête et d'utiliser IRC...
Non mais attendez là... Doit on venir sur ce forum pour qu'on nous dise que ce qu'on fait ne sert à rien sous prétexte que quelque chose de plus simple ou de déja fait existe? On devrait toujours s'en remettre aux autres et ne jamais rien tenter, alors?

Je fais AUSSI un chat en AJAX/PHP. Même si comme je veux j'en trouve partout, et gratuit en plus. Je suis complètement autodidacte, donc d'un niveau bien moindre que beaucoup d'entre vous. Je SAIS que je pourrai utiliser IRC, je SAIS AUSSI que mon chat n'ira pas loin. Mais qu'est ce qui est le plus important? laisser tomber ou tenter l'expérience?

Alors, pour en revenir à nos moutons, j'ai peut-être un debut de réponse pour Passion il y a 6 ans à propos de la gestion de messages privés, même si depuis le boulot est déjà fait, ça servira peut-être à d'autres.
Bon, j'ai déjà quelques idées, mais il faudrait d'abord que j'explique le fonctionnement actuel. en bref:

$(document).ready() se charge de contrôler quelques actions et appeler la fonction qui sert à ajouter (ajax) le nouvel arrivant à la table de BDD "enligne" (je vous épargne les détails de vérifications diverses), et qui fait le premier appel à la récupération des messages. Coté serveur, on en profite pour ajouter dans la table de messages le pseudo "connexion" et le message "untel vient de se connecter". Même méthode pour la déconnexion à ceci près que l'ajax est en mode synchrone.
la fonction js qui lit les messages fait le tri et appelle la fonction de récupération de la liste des connectés en lisant "connexion" comme pseudo.
Pour un message normal on ne fait rien de plus, la fonction de récupération des messages se rappelant elle même toutes les 2 secondes.

Comme vous pouvez vous y attendre, chaque message en BDD a un id auto_increment pour éviter de récupérer toutes les lignes à chaque fois.

Alors pour les messages privés, je serai tenté de mettre un pseudo de la forme "expediteur_2_destinataire" dans la table des messages. du coup à la lecture du message, la fonction saura faire le tri.
Mais pour la réponse, il faudrait transformer le pseudo en "destinataire_2_expediteur".
Pour la gestion des fenêtres de conversations privées, on créé un tableau js vide (pvtab) qui contiendra les noms des fenêtres pour vérifier ultérieurement si telle ou telle fenêtre est déjà ouverte. En effet, on peut très bien avoir plusieurs conversations privées.

Lorsque l’expéditeur veut envoyer un PV, le clic sur le lien prévu appelle la fonction d'ouverture de fenêtre, un div généré par prepend(); on l'ajoute au tableau pvtab.
Pour la communication privée en cours, la fonction de lecture des messages généraux obtient un champs pseudo "PV", et, à l'instar du pseudo "connexion", elle va interpréter le message comme étant destiné au destinataire spécifié . La réponse du serveur n’étant qu'un tableau encodé en JSON, on peut parfaitement y mettre l’expéditeur et le destinataire.
Pour ouvrir la fenêtre privée du destinataire au premier message, il suffit de vérifier l'existence du nom de la fenêtre dans le tableau pvtab.
à la fermeture de la fenêtre, on en efface le nom du tableau.

Voila en gros la manière dont je vais procéder. J’espère que ce post profitera à d'autre, je me tiens dispo pour des éclaircissements si besoin

vala vala
A ciao
 
Nouveau WRInaute
Alors ça, c'est ce qui s'appelle une VRAIE réponse constructive.

En effet, en evoluant sur le tchat que je developpe, moi aussi, n'en deplaise, en php/javascript (AJAX), je cherchais une solution pour:
-eviter les doublons
-eviter les requetes clients trop regulieres (surtout à partir d'un nombre important de connectés)
-detecter les eventuelles deconnexions intempestives (pannes de courant, plantage machine, wifi perdu et j'en passe)

Cette histoire de socket va peut-etre m'obliger à repenser mes scripts entierement, mais cette fois pour gagner en performance autant coté serveur que coté client.

Merci à toi, je ne sais comment te signifier ma gratitude
 
Nouveau WRInaute
Cette histoire de sockets en PHP est tout à fait intéressante.

Bon le tuto de Stephaneey est convaincant mais je refuse de "copier/coller" un script, je préfère encore développer moi même ce machin pas à pas.

Cela dit, une interrogation subsiste: J'ai vu et bien compris la nécessite de lancer le script coté serveur en mode console mais je me demandais si le premier client qui se connecte pouvait, en toute transparence, lancer ce fameux script serveur.

Notez que je ne suis pas l'administrateur du VPS qui héberge le tchat.
Notez aussi que le dev n'est pas mon métier, je ne suis qu'un humble bidouilleur amateur autodidacte sans ressources suffisantes pour une éventuelle formation complète.

Il me suffirait, me direz vous, de lancer la page sur mon navigateur pour que celui ci soit lancé. Mais comment faire si ma machine est éteinte (comme beaucoup je ne peux pas me permettre de laisser ma machine en route constamment pour des raisons évidentes de consommation d’énergie(il ne s'agit pas plus de facture EDF que de politique écologique en énergie). Et quand bien même, si ma machine en vient à planter ou doit redémarrer pour une raison x ou y, c'est fichu.

Ce que je cherche à faire c'est que le premier client qui se connecte puisse lancer la commande d'ouverture du dit script sans pour autant lancer une page.
Tant que je n'ai pas résolu ce problème je suis dans l'incapacité de pouvoir commencer quoi que ce soit, plutôt gênant...

Comme vous m'avez l'air de gens bien calés et que la solution doit être d'une simplicité extrême, je suis sur que vous pourrez m’éclairer sur le sujet ne serait ce que par quelques pistes, car Google, aussi performant soit il, ne peut pas me trouver de "tutoriel pour les nuls" qui n'existe pas (pas faute de chercher, tout me ramene au tuto de stephaneey)
J'insiste sur le fait de rester en PHP car c'est un langage que je connais. L'auto-apprentissage d'un nouveau langage prend du temps que je n'ai pas (boulot, enfants, vie de famille, etc). Les sockets ne sont après tout qu'une nouvelle notion qui ne me fait pas peur.

Je vous remercie d'avance ;)
 
Discussions similaires
Haut