멀티플레이어 TicTacToe 게임 구축

웹에서 실시간 멀티플레이어 게임을 구축하려면 TCP 또는 UDP를 사용하는 개방형 채널 통신이 필요합니다. 웹 소켓을 사용하여 실시간 통신을 달성할 수 있습니다. WebSocket은 서버와 클라이언트 간의 양방향 통신을 허용하는 TCP 통신 프로토콜입니다. WebSocket을 HTTP와 비교할 때 클라이언트의 요청(트리거) 없이 서버가 클라이언트와 통신할 수 있음을 알 수 있습니다.

게임 구성 방식



게임은 다음과 같은 간단한 논리를 따릅니다.
  • 게임 코드 생성
  • 다른 플레이어와 공유
  • 여러 라운드에서 플레이
    여기에서 라이브 버전을 볼 수 있습니다.

  • https://tic-tac-toe-trm58.ondigitalocean.app/



    디지털 오션에 배포



    Digital Ocean은 앱 플랫폼을 통해 애플리케이션 배포를 단순화합니다. 그들은 앱 유형을 감지하고 분석하는 메커니즘을 구현했습니다. 배포 요구 사항은 배포 프로세스에서 획득 및 수정됩니다.

    그래서 이 앱을 배포할 때 Digital Ocean은 시작 명령에 ENV_SILENT를 추가했습니다. 이렇게 정밀한 다른 클라우드 공급자는 본 적이 없습니다.

    ENV_SILENT=true npm start
    


    배포에 대해 배운 내용



    Digital Ocean은 package-lock.json 없이 Node.js 앱을 배포하지 못합니다. 재미있죠? 일부 프로젝트의 .gitignore에서 잠금 파일이 무시되는 이유가 궁금합니다.

    또한 tls 호스트가 ioredis의 구성에서 제외되면 SSL로 보호되는 Redis 서버에 연결할 수 없습니다.

      prod: {
        host: Env.get("REDIS_HOST"),
        port: Env.get("REDIS_PORT"),
        password: Env.get("REDIS_PASSWORD"),
        db: 0,
        keyPrefix: "",
    +   tls: {
    +     host: Env.get("REDIS_HOST"),
    +   },
      },
    


    시리즈의 다음 게시물에서는 Digital Ocean에 게임을 배포하는 단계별 프로세스를 살펴보겠습니다.

    좋은 웹페이지 즐겨찾기