herokucloudappfognon-web

Node.js TCP Socket Server on the Cloud [Heroku/AppFog]


Is is possible to run a Node.js TCP Socket oriented application on the Cloud, more specifically on Heroku or AppFog.

It's not going to be a web application, but a server for access with a client program. The basic idea is to use the capabilities of the Cloud - scaling and an easy to use platform.

I know that such application could easily run on IaaS like Amazon AWS, but I would really like to take advantage of the PaaS features of Heroku or AppFog.


Solution

  • I am reasonably sure that doesn't answer the question at hand: "Is is possible to run a Node.js TCP Socket oriented application". All PaaS companies (including Nodejitsu) support HTTP[S]-only reverse proxies for incoming connections.

    Generally with node.js + any PaaS with a socket oriented connection you want to use WebSockets, but:

    1. Heroku does not support WebSockets and will only hold open your connection for 55-seconds (see: https://devcenter.heroku.com/articles/http-routing#timeouts)

    2. AppFog does not support WebSockets, but I'm not sure how they handle long-held HTTP connections.

    3. Nodejitsu supports WebSockets and will hold your connections open until closed or reset. Our node.js powered reverse-proxies make this very cheap for us.

    We have plans to support front-facing TCP load-balancing with custom ports in the future. Stay tuned!