可以在云上运行面向Node.js TCP套接字的应用程序,更具体地说,可以在Heroku或AppFog上运行。
它将不是一个web应用程序,而是一个使用客户端程序访问的服务器。其基本思想是使用云缩放功能和易于使用的平台。
我知道这样的应用程序可以像Amazon一样很容易地在IaaS上运行,但是我真的很想利用Heroku或AppFog的PaaS特性。
发布于 2012-11-20 09:14:09
我相当肯定,这并没有回答眼前的问题:“运行面向Node.js TCP套接字的应用程序是可能的”。所有PaaS公司(包括Nodejitsu)都支持HTTPS--只支持传入连接的反向代理。
通常,对于node.js +任何具有面向套接字连接的PaaS,您都希望使用WebSockets,但是:
我们有计划支持前端TCP负载平衡与自定义端口在未来。敬请期待!
发布于 2012-11-20 21:29:07
AppFog和Heroku为您的应用程序提供一个任意端口来监听从端口80映射的端口。你不能选择你的港口。如果需要将连接保持长时间打开,请参阅下面的编辑。如果您的客户端不需要维护和打开连接,您应该考虑创建一个restful,该API为客户端应用程序提供json。端口80已经足够了,Node.js和Express为在paas上创建API做了一个极好的组合。
AppFog
https://docs.appfog.com/languages/node#node-walkthrough
var port = process.env.VCAP_APP_PORT || 5000;Heroku
https://devcenter.heroku.com/articles/nodejs
var port = process.env.PORT || 5000;编辑:正如索引零所提到的,AppFog和Heroku只支持https并关闭长期保存的连接。只要有活动,AppFog就会保持连接打开。这可以通过使用Socket.io或第三方解决方案(如推手 )来解决。
// Socket.io server
var io = require('socket.io').listen(port);
...
io.configure(function () {
io.set("transports", ["xhr-polling"]);
io.set("polling duration", 12);
});发布于 2014-12-16 09:55:41
tl;dr -在当前的世界状况下,这只是不可能的;您必须购买一个具有自己的公共IP地址的虚拟机。
我发现的所有PaaS提供者都在其所有应用程序前面都有一个HTTP路由器。这使得它们能够在一个IP地址下容纳数十万个应用程序,极大地提高了可伸缩性,从而--它们如何免费提供应用程序托管。因此,在HTTP中,Hostname报头用于唯一标识应用程序。
但是,在TCP情况下,必须使用IP地址来标识应用程序。因此,为了使其工作,PaaS提供程序将被迫在其IPv4范围内为您分配一个。这是因为两个主要原因: IPv4地址空间已经完全耗尽,以及“遗留”网络的缓慢速度将使VM很难实际移动。(“遗留”网络是指标准/非SDN网络。)
这两个问题的解决方案是IPv6和SDN,尽管我预见到无处不在的SDN会在IPv6做- which之前到达,然后可以用来解决各种IPv4问题。亚马逊已经在他们的数据中心使用了SDN,尽管还有很长的路要走。同时,只需购买一个带有公共IP地址的虚拟机/linux容器实例,并在那里运行您的TCP服务器。
https://stackoverflow.com/questions/13458943
复制相似问题