iOS – 使用Websockets进行自动完成

我正在构build一个iOS应用程序,允许用户在大型数据库中search书籍。 我们希望实现一个“自动完成”function,在用户input时从服务器检索标题,以在表格视图中提供build议(我们的后端使用排名algorithm来获取相关结果)。

我们正在使用Starscream框架来实现Websockets,但是我想获得一些关于实现此function的最佳方式的build议。 到目前为止,我已经提出了两个select:

  1. 用户启动应用程序时打开Websocket连接,并在整个会话中保持此连接。 networking连接的变化将导致pipe道被破坏,所以需要使用客户端ping来检测这个并build立一个新的连接。
  2. 当用户点击search栏开始input时,打开Websocket连接。 只有在search栏处于活动状态(键盘存在时)时,连接才会保持打开状态,并且在键盘被解除时断开连接。

有一件事要记住,应用程序有多个视图和function,不涉及search,实际上需要自己的连接(例如,消息function当前使用自己的WebSocket连接发送/接收来自其他用户的消息,其他视图从REST API下载内容)。 所以这引出了另一个问题:

从同一个应用程序同时维护多个WebSocket连接是否有缺点? 另外,有哪些好的做法可以用来确保连接通过networking转换(即从WiFi到蜂窝)保持活跃? 这个问题我有很多问题,特别是在消息服务方面。

任何build议/这个话题的帮助将不胜感激。 作为参考,我们的服务器使用Node.js和Websockets的ws框架。

Interesting Posts