我为我的应用选择最好的设计时遇到了麻烦。 我正在为移动应用编写代码,我需要从我的服务器获取图片,并使用标记在谷歌地图上使用他们的gps坐标属性显示它们。
所以,通常我只是使用一个简单的GET /pictures
从我的api中获取它们,但后来我想到了一种更好(也许更优雅)的方法。我想用socket.io来实时更新图片,因为当我从API获取图片时,我没有得到所有图片,我只接受客户在地图上看到的图片(使用谷歌地图'getBounds()
),所以每当用户改变他看起来有点慢的时候GETting / pictures。
最初,我使用谷歌地图的空闲事件来获取某个区域的图片。
我现在想做的是使用websockets的实时更新地图,但我无法理解如何在我的应用中实现它。这是问题所在:
user1
获取某个区域的图片。他得到了图片,并使用标记在地图上绘制。好吧。
user2
在user1
区域中创建了一张图片。或者甚至更普遍:user2
对图片user1
进行操作正在寻找(喜欢它,删除它,创建一个新的,等等)
现在,user1
如何知道已采取行动?服务器可以广播发射,但那又是什么?那些不看图片的其他用户呢?
我只是不知道如何与服务器同步:删除图片时删除标记,当图片变得像时增加数字。我不明白,我想知道,因为我认为这是一个非常好的时间来制作一个实时的应用程序,或者我可能会强迫它,我应该坚持使用HTTP。
我想过在客户端上使用setInterval
并询问图片(上面有新的信息),但我不知道这是否是最干净的方式。
感谢您的时间
答案 0 :(得分:1)
你仍然可以使用socket.io广播一个emit,这对于目前正在查看相同区域的用户来说已经足够了;但是你还需要将这些新信息存储在某个地方(例如数据库)给那些当前没有查看同一区域的用户,这样当他们去那个区域时,他们将从服务器/数据库中获得最新的信息。 / p>