就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the help center寻求指导。
9年前关闭。
我想创建一个移动消息服务,但我不知道使用套接字编程或 Web 服务哪个更好?
创建此类服务时需要考虑哪些问题?例如连接成本..等。
如果您需要更多详细信息,请在否决或关闭问题之前告诉我!
最佳答案
Web 服务通常说“更容易”做起来,这要归功于对它们的极大兴趣以及开发人员工具和库和框架对它们的支持。
但是,特别是如果您的有效负载很小(想想典型 SMS 或推文大小的消息),您使用 Web 服务创建的开销是令人望而却步的:与传输的字节相比,通过 GPRS 或 UMTS 等无线网络发送的字节仍然非常昂贵电缆或 ADSL。 Web 服务带有几层不可见的信息,最终客户也必须付费。
因此,如果您的用例基于短消息,我至少建议您进行一些带宽模拟计算,并将您的决定基于带宽节省与应用程序复杂性的增加。
在查看套接字的同时,还请查看 UDP:如果您可以接受这样一个事实,即基本上您向某人发送一个数据包,并且如果不在您的协议(protocol)中设计一些 ack 机制,您将永远无法确定消息是否到达,它非常有效,因为没有流量来创建和维护连接,即使很长的消息也可以很好地在 1 个 UDP 数据包内传输。
根据评论编辑:
EDIT2,我忘了提及:移动网络曾经是开放、透明的网络,设备由公共(public) IP 地址标识。 NATed 移动网络正在迅速发展,这对“围墙花园”内外的设备如何通信产生了影响 (NAT traversal)。在设计沟通 channel 时,您需要考虑到这一点。
至于在聊天应用程序中使用流:它提供了一些概念上的优势,但是您可以很好地将聊天应用程序放在 UDP 之上,请看 here或 here
关于web-services - 套接字编程与 Web 服务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7237459/