2013-09-03 6 views
3

node.js에 코드화 된 TCP 서버가 있습니다. 그것이 무료 서비스이고 나는 그들의 무료 계획이 제공하는 것 이상을 필요로하지 않기 때문에 나는 그것을 Heroku에 올려 놓고 싶습니다.Heroku에 TCP 서버 배치

이제 헤로 쿠의 내부 작용에 대해 거의 알지 못해서 나는 완전히 새로운 것이므로 몇 가지 질문이 있습니다.

첫째, TCP (비 웹) 서버를 배포 할 수 있습니까? 나는 Heroku가 node.js의 네트를 좋아하지 않는다는 것을 읽었습니다. 왜냐하면 그것이 WebSocket을 지원하지 않고 socket.io를 사용해야하기 때문입니다.

그래서 서버를 socket.io로 전환했습니다. 나는 생각한다. 왜냐하면 내 코드는 다소 비슷해 보입니다. 나는 이것을 잘 해냈다. https://devcenter.heroku.com/articles/using-socket-io-with-node-js-on-heroku

"web"대신 Procfile에 무엇을 넣어야합니까? 또한 현재 가지고있는 것을 배포하려고 할 때 로그에 내 응용 프로그램이 $ PORT에 바인딩하지 못했다고 기록되어 있습니다. $ PORT 란 무엇입니까? 어떻게하면 원하는 항구로 변경할 수 있습니까?

실제로 변경하지 않으면 응용 프로그램이이 서버에 연결할 수있는 방법을 어떻게 알 수 있습니까?

+0

기본적으로 웹 소켓을 지원하지 않지만 다음을 사용하여 툴벨을 설치 한 경우 이제 heroku에서 사용할 수 있습니다.''$ heroku labs : enable websockets -a myapp '' –

답변

2

Heroku는 일반 TCP 서버를 지원하지 않지만 socket.io를 사용하여 원하는 기능을 얻을 수 있어야합니다.

웹을 Procfile에 넣어야합니다. 그것이 Heroku가 웹 트래픽이 도착할 로컬 포트로 포트 80에 대한 외부 연결을 바인드하게합니다. 환경 변수 $ PORT를보고 포트를 찾습니다. https://devcenter.heroku.com/articles/nodejs

+0

아, 그래서 $ PORT는 내 서버에서만 사용됩니까? 내 고객이 80에 연결해야합니다. 맞습니까? –

+0

정확히. 그리고 Heroku의 라우팅 패브릭은 80에서 사용자 지정 포트로 리디렉션됩니다. – dankohn