2016-09-20 79 views
-1

因此,我创建了一个应用程序,通过REST API与我的服务器进行通信。正如你所知道的那样,通过向服务器发送POST和GET请求,然后在移动应用程序中接收响应,这是可行的。事情是,这个调用需要长达20秒或更长时间来响应,即使是登录,这也使得应用程序reaatally缓慢,我想防止iOS应用程序开发中的Web套接字或Web服务?

所以我在想另一个选项可能是一个Web套接字(使用Socket.io)。据我所知(从来没有尝试过)使用网络套接字将使我与服务器的通信更快。

你们有什么意见吗?

谢谢你们很多! :)

+0

首先,如果服务器速度很慢,那么这是服务器的一个限制/功能,它不会影响连接的方式。根据我对响应式服务器的经验,HTTP get可以在一秒钟或两秒钟内得到响应。其次,网络流量可能并且很慢,您的应用需要能够在缓慢时处理这些时间。 – Gruntcakes

回答

1

如果你想迁移你的整个REST API结构websocket,那么我建议这是不值得的想法。

Websocket基本上用于braodcast数据,谁连接到websocket,他们可以读取数据和做更多的事情。

例如,考虑例如Skype,WhatsApp的或其他VOIP应用

如果你正在开发的应用程序,其中有100位用户的UITableView并没有像“绿色”,“灰色”,以表明用户在线或离线。在这种情况下,websocket可以帮助你。

在viewWillAppear中你必须得到所有用户的列表,

注 - 尽管用户是否在线(登录),他们必须连接到的WebSocket并提供标志,因为他们是在网上。

现在获得所有用户的响应之后,您必须比较所有用户的ID API响应在websocket上在线标记。所以你必须显示“绿色”图像或其他“灰色”。

因此,当任何用户登录或注销,用户标志获取保持websocket,每当你获得广播有效载荷做上面提到的进一步活动。因此,您不需要每次获取所有用户API响应并使其联机或脱机。

基本上websocket有利于广播目的或一些小型活动。您不应该在websocket上传输REST API的整个结构负载。

考虑减少请求/响应时间。

祝您编程愉快。

+0

谢谢兄弟,这是我需要的。很好的一天 – mkmnstr