PHPFixing
  • Privacy Policy
  • TOS
  • Ask Question
  • Contact Us
  • Home
  • PHP
  • Programming
  • SQL Injection
  • Web3.0

Friday, August 5, 2022

[FIXED] How to get same data each time socket event is called

 August 05, 2022     reactjs, socket.io     No comments   

Issue

I'm new at web sockets (also in socket.io). I write a simple app for experiment purposes. And, I don't understand why my event is not triggering on each click of button.

My backend in nodejs

io.on("connect", (socket) => {
    console.log(socket.id);

    const data = {
        name: "pikachu",
    };

    socket.emit("receive_message", data);

    socket.on("disconnect", () => {
        console.log("user disconnected");
    });
});

and frontend in reactjs

function App() {
  useEffect(() => {
    socket.on("receive_message", (data) => {
      console.log(data, "zulu");
    });
  }, [socket]);

  const getRandomHero = () => {
    socket.on("connect", () => {
      console.log("connected");
    });
  };

  return (
    <div className="App">
      <button onClick={getRandomHero}>Get random hero!</button>
    </div>
  );
}

Object data I get when every time page refreshes. How can I get this data when each time I click the button?


Solution

You would need to emit an event from the function getRandomHero, then listen for that event on the server and return something. Something like this:

Front-end:

const getRandomHero = () => {
    socket.emit('get_hero')
}

Back end:

io.on("connect", (socket) => {
    console.log(socket.id);
    socket.on('get_hero', () => {
        socket.emit('receive_message', data);
    }
}


Answered By - arfi720
Answer Checked By - David Marino (PHPFixing Volunteer)
  • Share This:  
  •  Facebook
  •  Twitter
  •  Stumble
  •  Digg
Newer Post Older Post Home

0 Comments:

Post a Comment

Note: Only a member of this blog may post a comment.

Total Pageviews

Featured Post

Why Learn PHP Programming

Why Learn PHP Programming A widely-used open source scripting language PHP is one of the most popular programming languages in the world. It...

Subscribe To

Posts
Atom
Posts
Comments
Atom
Comments

Copyright © PHPFixing