【问题标题】:Android: What is the benifit to use Socket over Web API for chatting?Android:使用 Socket over Web API 进行聊天有什么好处?
【发布时间】:2015-09-09 04:54:30
【问题描述】:
我阅读了一些教程,还为我的聊天应用检查了一些 Socket Programming 示例,但我注意到一件事,如果我们仍然使用套接字编程,我们需要一次又一次地访问 Web 服务线程从服务器获取新消息。
现在我的问题是:如果我们需要一次又一次地访问 Web 服务,那么需要使用套接字来执行此操作吗?我们可以通过反复点击网络服务直接从服务器获取聊天消息。
编辑:我制作了一个聊天应用程序,只是一次又一次地点击网络服务来获取新消息,我正在使用 Intent 服务。它工作正常,但我知道这不是聊天的标准方式。
【问题讨论】:
标签:
android
websocket
chat
【解决方案1】:
使用套接字,您无需一遍又一遍地发送新请求。您在服务器和客户端之间创建/打开连接。此连接保持打开状态,直到您关闭它。双方(客户端和服务器)可以随时开始发送数据。 WebSockets 是双向实时通信的标准。
StackOverflow 上有一个关于 WebSockets 和 HTTP 请求区别的很好的讨论:WebSockets protocol vs HTTP
【解决方案2】:
在 http 上使用 websockets 的好处是具有实时性。 websockets 允许服务器将数据推送到客户端,而不是等待客户端定期连接/订阅。此外,websocket 的开销也比持续的 http 命中少。