CONTEXT
应用:单页实时网络应用
功能性:
通讯:
峰值负载:数百个并发用户(但当然)
开发人员能力:麻瓜
途径研究
1)天真的方法:托管node.js + express + socket.io
我有一个用天真的方法运行的沙盒,但我觉得Toonces The Driving Cat(我告诉过你他可以开车!只是不太好!)。我有csp,xframe,xss等头盔,但我的socket.io代码非常基本,没有特殊事件处理程序或流量限制。
2)替代方法:托管node.js +托管实时数据/消息服务
此处的期望是托管的实时数据/消息服务非常强大,除了处理DoS和安全传输等问题外,还可以扩展到流量。托管的node.js应用程序将提供CDN后面的静态文件,因此主要处理实时数据和工作线程。 node.js应用程序不会直接面向Web应用程序用户。
问题
您是否会建议方法#2显然优越并且值得花费额外费用?
欢迎任何其他意见/建议。
答案 0 :(得分:2)
这里的派对有点晚了,但我认为这对其他人也有帮助。实质上,您必须评估您管理支持实时Web应用程序的堆栈的能力,即您是否能够配置所有组件 - socket.io,express,node并让它们继续运行?
通过使用简化事物的框架,您可以让您的生活更轻松。 Meteor(https://www.meteor.com/)是一个很好的例子,可以让你更专注于代码。您仍然需要一些部署Meteor的知识,但这需要一些工作量。
在极端情况下,您可以使用完全托管的框架,例如Sync Ninja(http://www.syncninja.com/),它只允许您处理代码。
从经验来看,当您刚刚开始使用托管解决方案时,它是值得的,因为您可以专注于构建应用而不是管理后端。
免责声明:我参与过Sync Ninja。