Heroku: Node.JS app with socket.io

오픈소스·2023년 2월 6일
0
post-thumbnail

local에서 동작하는 socket.io를 사용하는 Node.JS WAS가 Heroku에 배포했을 때, 다음과 같이 동작하지 않으면,

2023-02-05T15:13:08.469891+00:00 heroku[web.1]: Starting process with command `npm start`
2023-02-05T15:13:10.373727+00:00 app[web.1]:
2023-02-05T15:13:10.373760+00:00 app[web.1]: > oauth-orm-starter@1.2.2 start
2023-02-05T15:13:10.373763+00:00 app[web.1]: > node dist/main
2023-02-05T15:13:10.373763+00:00 app[web.1]:
2023-02-05T15:13:10.821416+00:00 app[web.1]: node:internal/modules/cjs/loader:1050
2023-02-05T15:13:10.821440+00:00 app[web.1]: throw err;
2023-02-05T15:13:10.821440+00:00 app[web.1]: ^
2023-02-05T15:13:10.821440+00:00 app[web.1]:
2023-02-05T15:13:10.821441+00:00 app[web.1]: Error: Cannot find module 'socket.io'
2023-02-05T15:13:10.821441+00:00 app[web.1]: Require stack:
2023-02-05T15:13:10.821441+00:00 app[web.1]: - /app/dist/events/events.gateway.js
2023-02-05T15:13:10.821442+00:00 app[web.1]: - /app/dist/events/events.module.js
2023-02-05T15:13:10.821442+00:00 app[web.1]: - /app/dist/chat/chat.module.js
2023-02-05T15:13:10.821442+00:00 app[web.1]: - /app/dist/app.module.js
2023-02-05T15:13:10.821443+00:00 app[web.1]: - /app/dist/main.js
2023-02-05T15:13:10.821443+00:00 app[web.1]: at Module._resolveFilename (node:internal/modules/cjs/loader:1047:15)
2023-02-05T15:13:10.821444+00:00 app[web.1]: at Module._load (node:internal/modules/cjs/loader:893:27)
2023-02-05T15:13:10.821444+00:00 app[web.1]: at Module.require (node:internal/modules/cjs/loader:1113:19)
2023-02-05T15:13:10.821444+00:00 app[web.1]: at require (node:internal/modules/cjs/helpers:103:18)
2023-02-05T15:13:10.821444+00:00 app[web.1]: at Object.<anonymous> (/app/dist/events/events.gateway.js:18:21)
2023-02-05T15:13:10.821447+00:00 app[web.1]: at Module._compile (node:internal/modules/cjs/loader:1226:14)
2023-02-05T15:13:10.821447+00:00 app[web.1]: at Module._extensions..js (node:internal/modules/cjs/loader:1280:10)
2023-02-05T15:13:10.821448+00:00 app[web.1]: at Module.load (node:internal/modules/cjs/loader:1089:32)
2023-02-05T15:13:10.821448+00:00 app[web.1]: at Module._load (node:internal/modules/cjs/loader:930:12)
2023-02-05T15:13:10.821448+00:00 app[web.1]: at Module.require (node:internal/modules/cjs/loader:1113:19) {
2023-02-05T15:13:10.821448+00:00 app[web.1]: code: 'MODULE_NOT_FOUND',
2023-02-05T15:13:10.821448+00:00 app[web.1]: requireStack: [
2023-02-05T15:13:10.821449+00:00 app[web.1]: '/app/dist/events/events.gateway.js',
2023-02-05T15:13:10.821449+00:00 app[web.1]: '/app/dist/events/events.module.js',
2023-02-05T15:13:10.821449+00:00 app[web.1]: '/app/dist/chat/chat.module.js',
2023-02-05T15:13:10.821449+00:00 app[web.1]: '/app/dist/app.module.js',
2023-02-05T15:13:10.821449+00:00 app[web.1]: '/app/dist/main.js'
2023-02-05T15:13:10.821449+00:00 app[web.1]: ]
2023-02-05T15:13:10.821450+00:00 app[web.1]: }
2023-02-05T15:13:10.821453+00:00 app[web.1]:
2023-02-05T15:13:10.821453+00:00 app[web.1]: Node.js v18.14.0
2023-02-05T15:13:10.827036+00:00 app[web.1]: npm notice
2023-02-05T15:13:10.827103+00:00 app[web.1]: npm notice New minor version of npm available! 9.3.1 -> 9.4.1
2023-02-05T15:13:10.827283+00:00 app[web.1]: npm notice Changelog: <https://github.com/npm/cli/releases/tag/v9.4.1>
2023-02-05T15:13:10.827321+00:00 app[web.1]: npm notice Run `npm install -g npm@9.4.1` to update!
2023-02-05T15:13:10.827444+00:00 app[web.1]: npm notice
2023-02-05T15:13:10.972732+00:00 heroku[web.1]: Process exited with status 1
2023-02-05T15:13:11.021352+00:00 heroku[web.1]: State changed from starting to crashed

https://devcenter.heroku.com/articles/node-websockets#option-2-socket-io
아래와 같은 추가 조치를 합니다.

$ heroku features:enable http-session-affinity -a nestjs-kakaologin
$ npm install --save socket.io

TMI

http://www.cyclic.sh 에서 먼저 시도했는데, 웹소켓을 지원하지 않아 heroku로 이동하였습니다.

참고)

0개의 댓글