Web services 套接字编程与web服务?

Web services 套接字编程与web服务?,web-services,sockets,Web Services,Sockets,我想创建一个移动消息服务,但我不知道使用套接字编程或web服务哪个更好 创建此类服务时,我需要考虑哪些问题?例如连接成本。。等等 如果你需要更多的细节,请在投票否决或结束之前告诉我 由于对Web服务的极大兴趣,以及开发人员工具以及通过库和框架对Web服务的支持,一般来说,Web服务“更容易”实现 然而,特别是如果你的有效载荷很小(想想典型的SMS或tweet大小的消息),你使用Web服务产生的开销是令人望而却步的:与通过电缆或ADSL传输的字节相比,通过GPRS或UMTS等无线网络发送的字节仍然

我想创建一个移动消息服务,但我不知道使用套接字编程或web服务哪个更好

创建此类服务时,我需要考虑哪些问题?例如连接成本。。等等


如果你需要更多的细节,请在投票否决或结束之前告诉我

由于对Web服务的极大兴趣,以及开发人员工具以及通过库和框架对Web服务的支持,一般来说,Web服务“更容易”实现

然而,特别是如果你的有效载荷很小(想想典型的SMS或tweet大小的消息),你使用Web服务产生的开销是令人望而却步的:与通过电缆或ADSL传输的字节相比,通过GPRS或UMTS等无线网络发送的字节仍然非常昂贵。而web服务携带着几层无形的信息,最终客户也必须付费

所以,如果你的用例是基于短消息的,我至少建议你做一些带宽模拟计算,并根据节省的带宽和增加的应用程序复杂性做出决定

在查看套接字的同时,还可以查看UDP:如果您可以接受这样一个事实,即基本上您向某人发送了一个数据包,并且没有在协议中设计一些ack机制,您将永远无法确定消息是否到达,这是非常有效的,因为没有流量来创建和维护连接,甚至很长的消息也可以在一个UDP数据包中传输

根据评论进行编辑:

  • stream socket:不确定如何定义流,但流和消息对我来说是两个截然不同的概念,流通常是发送的较长数据序列,而消息是发送的实体,可以选择由接收方确认或应答
  • 带宽模拟:理解我所说内容的最简单方法是获取并汇总通过网络传输的所有内容,以执行一个非常短的字符串的简单请求-您将看到几层管理信息(即不可见,只是为了使不同的协议层工作)这些都是由最终用户支付的流量。然后,使用UDP编写一个小的模拟服务来传输相同的消息,或者使用像good tutorial这样的工具,将传输的字节相加。您将看到交换的字节数有很大的差异
EDIT2,我忘了提到的一点:移动网络过去是开放、透明的网络,设备由公共IP地址标识。移动网络正在迅速发展,这对“围墙花园”内外的设备通信方式产生了影响()。在设计沟通渠道时,您需要考虑到这一点


至于在聊天应用程序中使用streams:它提供了一些概念上的优势,但是你可以很好地将聊天应用程序分层到UDP、look或

之上,谁否决了它!告诉我为什么?很难理解你在问什么。Web服务通过套接字工作——它不是非此即彼。另外,“关注点是什么…”似乎基本上要求回答者写一本书。正如我所知,web服务使用HTTP协议,其中HTTP数据包有许多额外的数据(头),这意味着会导致更多的流量消耗。使用套接字编程设计我们的协议以减少此类问题是否有效。关于考虑,如果你不想死亡,我需要重要的标题。请不要要求我的问题在没有给出理由的情况下结束!我发现这个问题是信息性的,因为我也对这个话题感到困惑,当我读到类似这个问题的东西时,我个人得到了更多的线索来搜索。谢谢你,阿达姆:)请你提供更多关于“我至少建议做一些带宽模拟计算”的细节。。非常感谢您提供的非常有用的信息,例如。你认为这种服务背后的技术是什么。。对不起,我的意思是在streams中,如果我想实现在线聊天,这是一个好的概念吗?好的,先生,我会接受你的回答,但是你能回答我这里的第二条评论吗?关于连接的链接?@adham不知道他们的具体协议,如果你能在运行他们服务的设备上嗅探(使用wireshark之类的工具称为嗅探),你会立即知道:-)