WooKoo Blog

물과 같이

개발/개발

[iOS] - 채팅할려고 정리하는 Swift 채팅 구현 - Socket.io & Node.JS

WooKoo 2022. 3. 22. 21:28

Swift에서 Socket.io를 이용해서 채팅을 개발하고 있는데

한국어로 된 자료가 너무 없기도하고 (안드도..) 있더라도 필요한 내용이 없어서 이 포스트도 부족하지만

누군가에게는 함께 보면 좋을거라고 생각해서 나도 정리해본다!!!

 

먼저 구글에 검색했을 때 나오는 좋은 포스트들의 자료들을 함께 봐주면 된다.

 

먼저 서버 구현 먼저 하도록 하겠다.

 

이게 내가 앱개발자라 그런지 몰라도 서버에서 작업해줘야하는걸 몰라서 왜 안되나 삽질을 많이 했다.

 

노드를 먼저 설치해준다.!

https://nodejs.org/ko/download/

 

다운로드 | Node.js

Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine.

nodejs.org

 

 

설치 후에 터미널을 열어서 아래와 같이 express를 설치해준다.

여기보다 다른 블로그에서 잘 정리해뒀다!

노드를 설치하면 npm도 함께 설치됌!

깔린지 확인해보려면 

npm -v

 

 

입력하면 버전이 나타남!

 

npm install -g express-generator

 

express를 설치하고

 

서버 폴더를 하나 생성한 뒤 터미널에서

express <프로젝트이름>

 

입력해주면 서버에 필요한 파일들이 생긴다.

 

우리는 여기서 app.js 라는 파일을 이용할 것이다.

다른 포스팅에는 bin/www 에 작업하는 경우도있고 index.js 여기에 하는 것도 있는데

필자는 나중에 node app.js 라는 명령어를 입력할거라 이것만.. 사용할거임

 

쭉쭉 명령어 입력해주세요

npm install

 

npm install --save --save-exact socket.io express

 

npm update

 

 

이렇게하고 app.js 를 vscode나 sublimeText 같은 툴 이용해서 편집해주자. vi, nano 이용해도 될 것 같음!

var app = require('express')();
var server = require('http').createServer(app);
// http server를 socket.io server로 upgrade한다
var io = require('socket.io')(server);



// namespace /chat에 접속한다.
var chat = io.of('/test').on('connection', function(socket) {
  

socket.on("test", (msg) => {

  chat.emit("test", {
      "type": 1,
      "message": msg 
    })
});

});

server.listen(9000, function() {
  console.log('Socket IO server listening on port 3000');
});

 

 

위 코드는 임시입니다. 내일 업데이트 할 예정

 

이렇게 작성해서 저장해주고 터미널에서

node app.js

입력해주면 서버 작업은 끝!!!

만약에 실행하고 다시 실행했는데 이미 포트 사용 중이라고하면

ps -rf

 

입력 후 살아있는 node를

kill -9 puid(번호) 입력해주면 된다!

 

프론트단 구현은 다른 포스팅과 매우 비슷하다!