我想创建一个移动消息服务,但我不知道使用套接字编程或Web服务哪个更好?
在创建此类服务时,我需要考虑哪些问题?如连接成本......等等。
如果您需要更多详细信息,请在投票或关闭之前告诉我!
答案 0 :(得分:18)
Web服务通常说“更容易”,这要归功于它们对它们的巨大兴趣以及它们在开发人员工具中以及通过库和框架的支持。
但是,特别是如果您的有效负载很小(认为消息的大小与典型的SMS或推文相同),您使用webservices创建的开销是令人望而却步的:通过无线网络(如GPRS或UMTS)发送的字节仍然非常昂贵,通过电缆或ADSL传输的字节数。并且Web服务带有几层隐形信息,最终客户也必须支付这些信息。
因此,如果您的用例基于短消息,我至少建议您进行一些带宽模拟计算,并根据带宽节省与应用程序复杂性的增加做出决策。
在查看套接字时,还要看一下UDP:如果你可以忍受这样一个事实,即基本上你扔了一个数据包,并且没有在你的协议中设计一些ack机制,你永远不会确定消息到达了,它是非常高效,因为没有流量来创建和维护连接,甚至很长的消息也可以在1 UDP包内传输。
根据评论编辑:
EDIT2,我忘了提到:移动网络过去是开放的透明网络,设备由公共IP地址识别。 NAT移动网络迅速发展,这对这个“围墙花园”内外的设备如何通信产生影响(NAT traversal)。在设计沟通渠道时,您需要考虑到这一点。