我想知道在社交网络中让用户保持同步的最佳方法是什么。有关堆栈是一个带有NodeJS后端的iOS应用程序。让我举个例子:
说X和Y是社交网络上的朋友。 Y的帖子出现在X的提要中,因此,Y被缓存在X手机的某个地方。今天早上,Y决定改变个人资料图片。一切都很好,新图片上传到服务器,但我们如何让X了解个人资料图片的变化?
我可能的解决方案:创建一个包含一堆“cookies”的路由/<UID>/updates
,让用户知道自上次向GET请求发出GET请求以来发生了什么变化路由。
这看起来很优雅,但令我担心的是客户端会发生什么(我应该在我的应用程序正常运行时间内每隔2分钟发出一次GET请求吗?)。还有其他解决方案吗?
答案 0 :(得分:1)
一个解决方案确实是对服务器进行轮询,但这并不是很优雅。更好的方法是使用websockets:
WebSockets 是一项高级技术,可以在用户的浏览器和服务器之间打开交互式通信会话。使用此API,您可以将消息发送到服务器并接收事件驱动的响应,而无需轮询服务器以进行回复。
它们是客户端和服务器之间的双向连接,允许服务器通知客户端任何更改。例如,这是Meteor框架中使用的基础技术。
查看this blogpost以获取如何在iOS客户端和NodeJS后端之间使用websockets的示例。他们使用开源SocketRocket iOS库。