2014-05-09 4 views
0

Heroku에서 Node.js 및 socket.io를 사용하는 데 약간의 문제가 있습니다. 그것은 로컬로 잘 작동하지만 내가 Heroku에 밀고 웹 사이트로 가면 응용 프로그램 오류 페이지가 나옵니다. 로그를 보면 명백한 오류는 없지만 나는 그것이 무엇인지를 느낍니다. 로컬에서 실행하면 sudo node server을 사용하여 앱을 시작합니다. node server은 히로쿠와 같은 효과를냅니다.Socket.io on Heroku

기본적으로 제 질문은 : 어떻게 Heroku를 sudo 모드로 실행시킬 수 있습니까? 또는 sudo를 모두 사용해야하는 필요성을 어떻게 제거 할 수 있습니까?

죄송합니다. 처음으로 socket.io를 사용하여 사과드립니다. 따라서 라이브러리의 작동에 익숙하지 않습니다.

P. Express 3을 사용 중입니다.

+1

에서이 예에 따라 포트 5000을 사용하려고 할 것입니다. 'sudo node server'를 사용하지 않아야합니다 ('server'가 특권 포트에서 수신하는 것과 같은 루트 권한을 필요로하는 것을하지 않는 한 이것은 아마 나쁜 생각 일 것입니다). –

답변

1

사용중인 포트를 확인합니다. 예를 들어, 일반적인 우분투 시스템에서는 낮은 번호의 포트 (예 : 포트 80)에 sudo를 사용해야 할 수도 있습니다. 게다가 Heroku는 많은로드 밸런싱을 수행하므로 서비스에 연결하는 데 사용할 포트가 인스턴스를 수신 대기하도록 지정한 포트와 같지 않을 수 있습니다.

나는 우리가 더 많은 세부 사항을 필요가 있다고 생각 Heroku가 Nodejs with sockets

+2

좋아, 나는 당신이 말한대로'.listen (process.env.PORT || 5000)'을 추가 할 때까지 작동하지 않았다. 그러나 도움을 주셔서 감사합니다. – HexCoder

+0

죄송합니다. 작동하지 않았습니다. 바로 그거야. 앱이 결국 Heroku와 함께 어떤 포트를 실제로 듣고 있는지 알 수 있습니까? 해당 표기법 || 그게 의미가 없다면 그걸 사용하십시오. – Catalyst

+0

예, 나중에 깨달았습니다. 나는 결코 전에 그것에 대해 생각하지 않았지만, Heroku가 특정 포트에서 실행하려고한다면, 프로세스에 저장 될 것임을 깨달았습니다. 포트. 그렇지 않으면 5000을 사용할 수 있습니다. 전에 강제로 그것은 특정 포트에서 실행됩니다. – HexCoder