Partage
  • Partager sur Facebook
  • Partager sur Twitter

[React - Socket.io]Problème event listening client

    22 mai 2019 à 21:33:36

    Bonjour, je suis actuellement en train de travailler sur un projet étudiant, un site de rencontres.

    J'ai récemment voulu utiliser Socket.io afin de gérer les interactions entre utilisateurs.

    Par exemple, lorsqu'un utilisateur voit un profil :

    Côté serveur : Mise à jour de la base de donnée

    Côté client : Affichage d'une notification

    Actuellement, lors de la visite d'un profil, j'émet l'événement 'view user'

    Côté client, je reçois correctement cet événement et je peux bien effectuer des actions lors de l'émission de celui-ci

    Côté client, cela ne fonctionne pas, je peux émettre mais pas écouter les événements.

    Lors de l'émission de l'événement :

    socket.emit('view user', userId, userTarget)


    Avec ce code côté serveur :

    export const listenView = (socket) => {
      socket.on('view user', (userId, userTarget) => {
        console.log(`${ userId } viewed ${ userTarget }`)
        //viewUser(userId, userTarget)
      })
    }

    J'obtiens bien la sortie : 

    724688ca-a9a5-4863-ace8-99e541c63b8f viewed 53bdd4e0-10db-43dd-b57b-6efead866517

    et côté client :

      componentDidMount () {
        console.log('MOUNTED')
        socket.on('view user', (userId, userTarget) => {
          console.log(`Client : ${ userId } viewed ${ userTarget }`)
        })
      }

    Je n'obtiens jamais cette sortie

    Quelqu'un aurait une idée d'où peut venir le problème ? 

    (C'est toujours le même socket, j'ai vérifié l'ID et il correspond à chaque fois, lors de l'émission, lors de l'écoute côté client et lors de l'écoute côté serveur)

    Merci !

    EDIT :

    J'ai trouvé la solution, il suffisait d'émettre l'événement depuis le serveur pour pouvoir l'écouter depuis le client :

    export const listenView = (socket) => {
      socket.on('view user', (userId, userTarget) => {
        console.log(`${ userId } viewed ${ userTarget }`)
        socket.emit('view user', userId, userTarget)
        //viewUser(userId, userTarget)
      })
    }

    -
    Edité par Erwan.L98 22 mai 2019 à 21:48:46

    • Partager sur Facebook
    • Partager sur Twitter

    [React - Socket.io]Problème event listening client

    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
    • Editeur
    • Markdown