트러블 슈팅

23/01/11 WebSocket Buffer ??

5kiran 2023. 1. 11.
반응형

<Buffer 68 65 6c 6c 6f 20 66 72 6f 6d 20 74 68 65 20 62 72 6f 77 73 65 72>

노마드 코더 클론 코딩을 진행 중 터미널에 찍힌 이상한 문자!

<Buffer 68 65 6c 6c 6f 20 66 72 6f 6d 20 74 68 65 20 62 72 6f 77 73 65 72>

Front에서 Back으로 웹소켓을 이용해 메시지를 보내는 중이었다

Front
socket.send("hello from the browser")
Back
socket.on("message", (message) => {
    console.log(message)
  })

정상적이라면 터미널에 hello from the browser이 출력 되어야 하지만 Buffer 이란 이상한 문자를 출력한다

알고 보니 메시지를 출력하는 과정에서 메시지를 영어로 받아오지 못하고 buffer에 저장되어 있는 16진수 방식으로 가져온 경우로 추측되었다고 한다.

해결방법

console.log(message);를
console.log(message.toString('utf8'));
로 바꾼다.

그러면 16진수를 utf8의 방식의 문자열로 바꿔서 출력해 준다.

Back 코드를 아래와 같이 변경해주었다.

socket.on("message", (message) => {
    console.log(message.toString('utf8'))
  })

정상적으로 출력이 되는 모습을 볼 수 있다.

반응형

댓글