【发布时间】:2015-07-13 11:54:32
【问题描述】:
我有一个网站,我希望有一个用户系统,无论用户在网站的哪个位置,都可以在其中登录。
使用socket.io,我发现每个HTML页面都需要自己的socket.io连接。所以每次用户离开一个 HTML 页面到另一个页面时,他都会断开第一个套接字并连接另一个。
保持这种联系的最佳方式是什么?我不希望用户手动登录每个 HTML 页面。我假设将登录数据作为 HTML 参数传递并使用这些参数自动登录到服务器非常愚蠢,但目前这是我能想到的唯一解决方案。
理想情况下,socket.io 将在整个站点上使用相同的套接字。
我认为我错过了一些东西,考虑到所有具有用户系统的网站都具有所需的功能。
【问题讨论】:
-
如果您使用 Node 进行身份验证,最好的选择是使用可用的库之一,例如 passportjs.org 因为套接字连接是在每个请求开始时创建的,每次用户对不同页面发出新请求,这将重置套接字连接。解决此问题的唯一方法是通过 AJAX 加载页面,而不是使用回发。
-
您应该考虑通过 Angular.js 之类的框架将您的 Web 应用程序构建为客户端应用程序,这样可以更轻松地配置要在所有路由上连接的套接字 |页面。
-
如何更容易?
-
您应该查看单页应用程序。像那些使用 Angular 的人
标签: html node.js sockets socket.io server