본문 바로가기

내일배움캠프 4기 - Node.js

[9 - 2일차] socket.io 오류

문제점

  • socket.io 연결이 안됐다
------------------------B--------------------------
const app = express();
const server = require('http').createServer(app);
const io = require('socket.io')(server);

io.on('connection', (socket) => {
  console.log("소켓 연결됐음");
  socket.on('asdf', (txt) =>{
    console.log(txt);
  });
})


app.listen(process.env.PORT, () => {
  console.log(process.env.PORT, '포트로 서버가 열렸어요!');
});

module.exports = app;

시도해본 것

  • 코드만 수십번 수정했다..

해결 방법

  • app.listen 부분을 server.listen 으로 바꿔주니까 해결됐다..
server.listen(process.env.PORT, () => {
  console.log(process.env.PORT, '포트로 서버가 열렸어요!');
});

오늘 배운것

  • socket.io는 socket.on으로 받고 socket.emit으로 보낸다 ('asdf')처럼 이벤트네임만 맞다면 통신이 가능하고 받아오는 데이터를 (msg)로 안써도 가능하다. 
  • 프론트쪽에서 socket.on('connection, (socket))을 안써줘도 된다..
io.on('connection', (socket) => {
  console.log("소켓 연결됐음");
  socket.on('asdf', (fff) =>{
    console.log(fff);
  });
})
<script src="/socket.io/socket.io.js"></script>        

<script>
  let socket = io();
  socket.emit('asdf', "살려줘")
<script>