使用socket.io进行客户端实时更新

时间:2017-02-24 20:10:27

标签: javascript socket.io

我为我的应用选择最好的设计时遇到了麻烦。 我正在为移动应用编写代码,我需要从我的服务器获取图片,并使用标记在谷歌地图上使用他们的gps坐标属性显示它们。

所以,通常我只是使用一个简单的GET /pictures从我的api中获取它们,但后来我想到了一种更好(也许更优雅)的方法。我想用socket.io来实时更新图片,因为当我从API获取图片时,我没有得到所有图片,我只接受客户在地图上看到的图片(使用谷歌地图'getBounds()),所以每当用户改变他看起来有点慢的时候GETting / pictures。 最初,我使用谷歌地图的空闲事件来获取某个区域的图片。

我现在想做的是使用websockets的实时更新地图,但我无法理解如何在我的应用中实现它。这是问题所在:
user1获取某个区域的图片。他得到了图片,并使用标记在地图上绘制。好吧。
user2user1区域中创建了一张图片。或者甚至更普遍:user2对图片user1进行操作正在寻找(喜欢它,删除它,创建一个新的,等等)

现在,user1如何知道已采取行动?服务器可以广播发射,但那又是什么?那些不看图片的其他用户呢? 我只是不知道如何与服务器同步:删除图片时删除标记,当图片变得像时增加数字。我不明白,我想知道,因为我认为这是一个非常好的时间来制作一个实时的应用程序,或者我可能会强迫它,我应该坚持使用HTTP。

我想过在客户端上使用setInterval并询问图片(上面有新的信息),但我不知道这是否是最干净的方式。

感谢您的时间

1 个答案:

答案 0 :(得分:1)

你仍然可以使用socket.io广播一个emit,这对于目前正在查看相同区域的用户来说已经足够了;但是你还需要将这些新信息存储在某个地方(例如数据库)给那些当前没有查看同一区域的用户,这样当他们去那个区域时,他们将从服务器/数据库中获得最新的信息。 / p>