如何识别两个用户何时在Angular 2 App上的同一组件中

时间:2017-01-03 21:31:02

标签: node.js mongodb angular typescript socket.io

我试图找出当两个(或更多)用户当前在Angular 2应用中查看相同数据时如何定位/识别。我使用Node和mongoDB作为后端。并使用socket.io进行客户端和服务器之间的通信。基本上,我需要能够知道两个用户何时同时查看可编辑数据,因此我可以发送警报 - 以避免它们压倒对方'对数据的潜在编辑。

1 个答案:

答案 0 :(得分:2)

你需要一个后端。只要用户导航到不同的路径(不同的组件),您的Angular 2应用就需要向后端发送请求。

为此,您可以订阅路由器的活动。这里有一些简单的代码可以帮助您入门,但需要进行一些调整;查看"路线的其余部分"对象的属性并相应调整。将其粘贴到根组件(可能称为AppComponent)中:

constructor(private router:Router) {
    this.router.events.subscribe((route) => {
        var routeUrl = route.url;
        // TODO: send an HTTP request to your backend, telling it the new route that the user is on
    });
}

我假设你的最终目标是让其他用户知道他们在同一条路线上的人是谁,所以你的下一步就是以某种方式将这个回传给客户:AJAX polling是一个选项,就像设置websocket一样。