iOS - Socket.IO Server Setting

이한솔·6일 전
0

iOS 앱개발 🍏

목록 보기
46/49

Socket.IO Server Setting

서버를 어떻게 구축하는건지 Visual Studio도 안깔려있었지만 Node.js로 구축할 예정이다! 일단 하고보자!

우선, JavaScript란 웹 개발에서 가장 널리 사용되는 프로그래밍 언어 중 하나로 iOS로 따지면 Swift언어라고 생각하면 된다.

Node.js란 자바스크립트 런타임 환경으로, 브라우저 외부에서 자바스크립트 코드를 실행할 수 있게 해준다.
초기에는 주로 클라이언트 측 웹 브라우저에서 사용되던 JavaScript가 Node.js 등장으로 서버 측에서 사용가능해진 것이다!

npm이란 Node.js 환경에서 JavaScript 패키지를 설치하고 관리하는 도구다. 주로 서버 사이드 JavaScript 개발에서 사용되며, 프로젝트에 필요한 다양한 패키지를 간편하게 설치하고 관리할 수 있도록 도와준다고 한다.

첫번째로, Visual Studio를 깔고 npm을 설치한다.

Visual Studio 설치

Node.js가 깔려있지 않다는 에러가 발생한다..! 노드도 깔아주자
Node.js를 깔고, npm 설치를 완료했다.
Node.js 설치

npm 설치시 package.json 파일이 생성된다.



npm을 사용하여 여러 개의 Node.js 패키지를 설치한다.

express: Node.js 웹 프레임워크로, 서버를 구축할 때 사용
Socket.io: 실시간 양방향 통신을 가능하게 해주는 라이브러리


서버를 구축하는 코드를 보자!

// Express 모듈 불러옴 
const express = require('express'); 
// socket.io 모듈 불러옴 
const socket = require('socket.io');
// Express 애플리케이션 생성
const app = express();
// 포트설정 (환경 변수에 PORT가 설정되어 있으면 그 값을 사용하고, 아니면 3000번 포트 사용)
var PORT = process.env.PORT || 3000;
// 서버를 지정된 포트에서 시작
const server = app.listen(PORT); 

console.log('Server is running');
// Socket.IO 서버를 생성하고 Express 서버에 연결
const io = socket(server);

// 소켓 연결 처리
// 새로운 클라이언트가 연결되었을 때 실행되는 함수
io.on('connection', (socket) => {
// 새로운 소켓 연결이 생길 때마다 소켓 ID를 출력
    console.log("New socket connection: " + socket.id)

  // 클라이언트에서 'newMessage' 이벤트를 수신했을 때 처리하는 부분
    socket.on('newMessage', (message) => {
        console.log("Received new message: " + message);
      // 모든 클라이언트에게 'newMessage' 이벤트와 받은 메세지 전송
      io.emit('newMessage', message); 
    })
})

이렇게 서버를 구현하고, 클라이언트에서 SocketIO-Client-Swift를 사용해서 소켓에 연결 후 newMessage 이벤트로 메세지를 보내면 서버에서 응답으로 동일한 메세지를 받을 수 있다. 또한, 클라이언트에서 받아야하는 추가적인 데이터가 있을 경우 서버에서 코드로 처리할 수 있다. 이 부분은 클라이언트 구현하면서 계속 수정해야 할 것 같다.

클라이언트 코드 구현은 다음 글로 정리해서 작성해야겠다!

0개의 댓글