Friday, August 11, 2017

Node.js WebSocket 서버 클라이언트 예제

서버: index.js
const WebSocket = require('ws');
const wss = new WebSocket.Server({ port: 8080 });

wss.on('connection', function connection(ws, request) {
    console.log('connection');
    ws.on('message', function incoming(message) {
        console.log('received: %s', message);
    });
    ws.on('close', function close(code, reason) {
        console.log('close ' + code + ':'+reason);
    });
    ws.send('something');
});

클라이언트: index.html
<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>Native WebSocket Example</title>
</head>
<body>
<script>
  // 웹소켓 전역 객체 생성
  var ws = new WebSocket("ws://localhost:8080", "echo-protocol");

  // 연결이 수립되면 서버에 메시지를 전송한다
  ws.onopen = function(event) {
    ws.send("Client message: Hi!");
  }

  // 서버로 부터 메시지를 수신한다
  ws.onmessage = function(event) {
    console.log("Server message: ", event.data);
    document.write("Server message: ", event.data);
  }

  // error event handler
  ws.onerror = function(event) {
    console.log("Server error message: ", event.data);
  }
</script>
</body>
</html>

Thursday, August 10, 2017

Node.js nvm 기본 버전 설정하기

맥에서 node.js를 설치한 후에 항상 nvm use ${version}을 해야 되는 불편함이 있었다.
나같은 경우는 기본적으로 터미널을 연 후에 nvm use stable을 입력하고 node를 실행했었다.
이 상황에서 매번 nvm을 실행하지 않게 하기위해서는 다음과 같이 터미널에 입력하게 되면, 다음번 터미널 열때부터는 nvm use를 입력하지 않아도 된다.

nvm alias default node