Hyeyeon blog

[Node.js] Socket.io를 이용한 소켓 서버 구현하기 본문

개발/Node.js

[Node.js] Socket.io를 이용한 소켓 서버 구현하기

Hyeyeon.P 2020. 12. 11. 18:13
반응형

Socket.io

   Socket.io란 서버와 클라이언트 간의 양방향 통신을 위한 WebSocket 기반의 Node.js 라이브러리 입니다. 

Socket.io vs WebSocket

   WebSocket

  • HTML5 웹 표준 기술입니다.
  • http://가 아닌 ws://를 사용합니다. 
  • Http Request를 사용하여 80, 443 포트로 통신하기 때문에 별도로 방화벽을 열지 않고 양방향 통신이 가능합니다. 

   Socket.io

  • 표준 기술이 아닌 라이브러리입니다.
  • WebSocket을 지원하지 않는 브라우저에서도 통신이 가능합니다. 

Socket.io 적용하기 

   1. socket.io 설치

   글 작성 기준, 최신버전은 3.4.0이나 최신버전으로 설치한 후 안드로이드에서 연결 시 ping timeout이 발생하여 연결에 실패하기 때문에 2.3.0 버전으로 설치를 진행합니다.

npm install socket.io@2.3.0

   2. app.js 코드 구현 

var app = require('express')();
var http = require('http').Server(app);
var io = require('socket.io')(http);
var path = require('path');

app.get('/', function(req, res){
    res.render('index');
});

// 클라이언트에서 connect에 성공 시 호출됩니다.
io.on('connection', function(socket){
	console.log('client connected');
	
	socket.on('message', function(obj){
        // 클라이언트에서 'message'라는 이름의 event를 받았을 경우에 호출됩니다. 
		console.log('server received data');
		console.log(obj);
	});
	
	socket.on('disconnect', function(){
    	// 클라이언트의 연결이 끊어졌을 때 호출됩니다.
		console.log('server disconnected');
	});
});

// 소켓 통신을위해 포트를 지정합니다. 
var PORT = 3000;
http.listen(PORT, function(){
	console.log('listening port: 3000');
});

   3. 서버 실행

아래의 명령어로 서버를 실행합니다.

node app.js

 

연결되는 글

>> Socket.io를 이용하여 소켓 서버와 안드로이드 앱 통신 하기

 

[Android] Socket.io를 이용하여 소켓 서버 통신하기

1. dependency 추가 dependency { implementation ('io.socket:socket.io-client:1.0.1') { exclude group: 'org.json', module: 'json' } } 2. 소켓 연결 및 데이터 전송 class MainActivity : AppCompatActivity..

jamie-dev.tistory.com

 

728x90

'개발 > Node.js' 카테고리의 다른 글

[Node.js] Basic Auth 구현하기 (+ swagger 추가)  (0) 2019.02.02
Comments