是否有一个平台作为服务(PaaS,例如Google或Windows ),可以以合理的成本运行服务器,以保护客户端之间的对等“实时”通信?
在我的例子中,这个系统将用于将(少量)网络流量传递到嵌入式C中资源有限的小型家庭自动化设备,以及安卓和iOS应用程序。在几年内,我预计将有数以十万计的同时连接。
我之所以要寻找PaaS解决方案而不是IaaS,是因为我希望尽量减少虚拟计算机、操作系统和服务器应用程序维护所需的时间和专业知识。
由于家庭自动化小工具的资源限制,像PubNub这样的解决方案是不可能的。我的嵌入式C代码有几千字节的可用程序闪存,所以所使用的协议必须非常基本(例如原始的TCP或UDP、HTTP或WebSockets)。
在Google (GAE)中使用“长轮询”太昂贵了,因为即使几乎没有传输流量,他们也会在整个连接期间收费。GAE支持套接字,但只支持传出套接字,而不支持服务器上的侦听套接字。是否有可能克服这一限制,例如,首先向GAE发送一个UDP数据包(在用户防火墙上打一个洞,然后让GAE启动一个外出套接字,返回到家庭自动化小工具或Android/iOS应用程序)?
或者您看到使用Windows的PaaS方面或其他PaaS提供程序的其他可能的解决方案吗?
任何提示或可能的解决方案都是非常感谢的!
发布于 2014-01-18 20:23:50
AMQP似乎适合您的协议需求,而ApacheQpid/质子项目有一些客户端库,它们的C代码可能满足您的需要。在服务端,您可以使用Azure ServiceBus进行测试,因为它讲的是AMQP。如果这不能满足您的需要,您可以主持一个工作者角色,并在其中运行一个AMQP客户端。
另一个需要考虑的选项是ZeroMQ。他们有很多非常简单的客户端API,构建一个在Worker角色中运行的中继服务将是微不足道的代码。Java样本 C#样品 --这些示例使用的是"inproc“传输,我猜您希望将其转换为TCP。
https://stackoverflow.com/questions/21204793
复制相似问题