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

AJAX Discussion :

[AJAX] Un système de notifications


Sujet :

AJAX

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2013
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2013
    Messages : 31
    Points : 23
    Points
    23
    Par défaut [AJAX] Un système de notifications
    Bonjour chers Developpez.
    Je sais que ce sujet a déjà été posté mais j'ai pas eu les idées très claire a certaine de mes questions..

    J'aimerais créer un système de notifications pour mon site mais je ne sais pas DU TOUT comment m'y prendre:
    - Quels outils utiliser ? PHP , Javascript ?
    - Quelles bases de données créer ? Dois-je en créer une ?

    J'aimerai améliorer mon site pour les utilisateurs, dans la base de données j'ai déjà :
    Une table nommée "publication" ou est stocké toutes les publications des utilisateurs.
    Une table nommée "friend" ou est stocké toutes les relations entre utilisateur et forme les listes d'amis, fonctionne comme ceci :
    id_membres = 10 ; id_membres_add = 24
    id_membres = 65 ; id_membres_add = 10
    ...
    Une table nommée "membres" ou est stocké la liste des membres inscrits.


    Voilà, j’espère que cela pourra voir vous aidez, merci d'avance ! ^^

  2. #2
    Expert éminent
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Points : 9 127
    Points
    9 127
    Par défaut
    pour notifier il faut avoir kkchose à notifier

    on enm@rd# pas un utilisateur avec une notif pour rien
    donc que veux tu notifier

    A+JYT

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2013
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2013
    Messages : 31
    Points : 23
    Points
    23
    Par défaut
    Bonjour et merci de m'avoir répondu.
    J'aimerai tout simplement notifier pour savoir si un de mes amis à ajouter une nouvelle publication ?
    Je me suis un peu informer en surfant sur internet, mais il n'y a que deux solutions qui reviennent le plus souvent. C'est de stocker dans une base de données la notification. Cella reste, je croix, impossible car la table "notification" risque d'être trop lourde ! Imaginons si j'ai 250 amis, je vais devoir créer 250 notifications avec mon ID et celui de l'amis qui la reçois.
    Ou alors ils parlent d'utiliser WebSocket mais je sais pas du tout cella sert à quoi ?

    Je cherche encore mais cela reste flou.

    Merci.

  4. #4
    Expert éminent
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Points : 9 127
    Points
    9 127
    Par défaut
    je crois qu'avant de parler techno il te faut bien clarifier ce que tu veux faire.

    car tu parle de solution pour des services qui n'ont absolument rien a voir l'un avec l'autre.

    le mot notification et bien trop vague pour faire un choix quel qu'il soit.

    tu peux par exemple avoir un système d'alerte comme celui qu'utilise développez pour les messages perso.
    lorsqu'un utilisateur laisse un message il est stocké sur le serveur.
    lorsque le destinataire ouvre une url le serveur inclus dans la réponse une alerte lui indiquant qu'il a des messages.

    certain serveur lorsque tu est connecté envoie à ton navigateur des informations sur ce qu'il se passe côté serveur. une événement se produit sur le serveur. tous les utilisateur actuellement connecté en sont informé imédiatement. aucune info sur l'événement n'est stoké ce qui signifie que les utilisateurs non connectés n'aurons jamais l'info.

    si tu prends l'appli transilien SNCF tu as un système mixte. tu choisis de t'abonner au alertes d'une lignes. si tu est connecté tu reçois l'alerte dès que l'événement se produit. et si tu est déconnecté le système garde les événements (avec une durrée de vie, ie il élimine les plus vieux au fur et à mesure) et te les envois dès que tu te connecte.



    comme tu le vois trois cas trois notion de notification différentes. et je suis sur qu'en intérrogeant un grand nombre de personnes on en trouverait encore bien d'autre.

    lorsque tu trouve un avis de passage dans ta boite à lettre, tu es notifié de la présence d'un recommendé ou un colis à la poste.
    ...
    A+JYT

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2013
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2013
    Messages : 31
    Points : 23
    Points
    23
    Par défaut
    Bon comme tu es (on se tutoie, je suis pose maintenant) le seul qui n'a pas compris ce que je disais et pour qu'au moins j'ai une chance que l'on me réponde sur ce forum, je vais reformuler.
    Je ne sais pas comment réaliser un système de notification comme Facebook. Pour que mes utilisateurs reçoivent une alerte comme quoi un de leurs amis a publier un message, ou ils reçoivent une notification du genre :
    Vous avez 3 demandes d'amis.
    X a commenté votre publication.
    X a aimer votre commentaire.
    et etc...

    J’espère que le message est claire maintenant, je ne peux pas expliquer plus facilement

    Merci de prendre du temps pour mon problème

  6. #6
    Expert éminent
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Points : 9 127
    Points
    9 127
    Par défaut
    il s'agit donc d'un mode d'alerte comme celui du forum.

    je suppose que tu as déjà une table des commentaires.
    du coup lorsque un utilisateur ouvre une url tu peux très facilement lire cette table.
    pour savoir si de nouveaux commentaires ont été ajouté depuis la dernière consultation. il te faut ajouter une colonne à cette table pour marquer les commentaires déjà lu. soit avec un booléen, soit avec une date, soit avec un entier.
    avec un booléen "lut" tu le passe à true dès que le commentaire est lut. du coup la fois suivante lorsque l'utilisateur revient tu sais s'il y a des chose non lues.

    avec une date même fonctionnement tous ce qui est lut à une date de lecture.

    pour l'entier tu peux jouer plus fin. 0 nouveau, 1 notifié, 2 lut
    lorsque kk1 joute un commentaire la colonne est à 0. lorsque l'utilisateur vient tu lui notifie la présence de commentaires (à 0) et tu les passe à 1 (il ne seront plus notifiés) Mais lorsque l'utilisateur viendra les lires il pourra savoir ceux qui sont non lut.

    pour la deuxième partie "x a aimé votre commentaire"
    pareil je suppose que ta table commentaire contient une colonne "commentateur" qui contient le x. il te faut une colonne "notation" 0 pas de note, 1, aime, 2 aime beaucoup, -1 n'aime pas, -2 n'aime pas du tout. il te faut ensuite une colonne "notation lut"

    même topo que ci-dessus. lorsque un utilisateur ouvre une url tu cherche tout les commentaires dont le commentateur est x et dont la colonne "notation lut" est à "non lu"
    et comme pour le commentaires tu les marque "lut" ou "notifié".

    tu n'as donc pas besoin de notification temps réel. les technos comme websocket ne sont pas nécessaire.

    le plus simple est de faire ça côté serveur et d'inclure les info notifiées dans les pages servies.
    sur le forum par exemple il s'agit d'un simple code php. il y a juste un alert() en js dans la page.

    mais tu peux si tu veux dédier une url à cette activité (récupérer les notifs sur le server) et ajouter un appel ajax vers cette url dans tes pages.


    A+JYT

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2013
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2013
    Messages : 31
    Points : 23
    Points
    23
    Par défaut
    Merci pour ton explication. C'est intéressant je n'avais pas pensé à un système du genre. Mais petite question, dans la colonne ou est noté si l'utilisateur la lus ou non. Je ne comprend pas tout à fait car imaginons :

    Je poste une publication du genre : "Coucou à tous mes amis !"
    La publication s'enregistre dans la table "publication", et la colonne "notification" (appelons là comme çà) serra à 0.
    Mais voilà le problème, j'ai 256 amis, et donc je voix pas comment tu veux faire une alerte pour mes 256 amis, comme ta solution que tu viens de me proposer.

    Je vais devoir mettre l'id de mes amis dans la colonne notification ?

    Merci encore.

  8. #8
    Expert éminent
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Points : 9 127
    Points
    9 127
    Par défaut
    je n'avais pas vu que tu voulais aussi notifier les publications. m'étais donc concetré sur les commentaires.
    pour notifier chaque "ami" il faut que tu garde dans une table une ligne contenant l'id de la publication, l'id de l'ami à notifier.

    lorsque un "ami" ouvre une url tu selectionne dans cette table les lignes le concernant et avec l'id de la publication tu lui indique qu'il y a une publication de x. et tu supprime la ligne.

    si tu as 256 amis alors ça fait 256 couple d'id soit 32768 bits à stocker c'est pinuts pour une base de donnée. de plus dès que tu notifie tu supprime.

    tu peux aussi pour les commentaires comme pour les publications faire le ménage de tous ce qui est plus ancien que 2 mois par exemple. ainsi ta base ne sera pas encombré par des infos qui ne servent plus.
    A+JYT

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2013
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2013
    Messages : 31
    Points : 23
    Points
    23
    Par défaut
    Ah ok merci pour ton aide Mais risque pas d'être super lourd ? Sachant qu'il a 10.000 membres connecté par jours.

    Je vais mettre en résolut dans ce cas

  10. #10
    Expert éminent
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Points : 9 127
    Points
    9 127
    Par défaut
    en fait plus test utilisateur sont actif plus vite il sont alerté moins tu garde de données.

    A+JYT

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 23/06/2013, 15h18
  2. Firefox : Mozilla travaille sur un système de notifications Push
    Par Hinault Romaric dans le forum Firefox
    Réponses: 4
    Dernier message: 07/02/2012, 03h43
  3. Jquery, ajax et système de template
    Par balou01 dans le forum jQuery
    Réponses: 7
    Dernier message: 11/01/2012, 19h17
  4. [AJAX] ajax et système d'onglet
    Par sneb5757 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 11/08/2008, 13h51
  5. [AJAX] Erreur système : -1072896658 Code 0
    Par ericw78 dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 01/02/2006, 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