Javascript 如何在不丢失套接字连接的情况下将用户导航到网站中的其他页面?

Javascript 如何在不丢失套接字连接的情况下将用户导航到网站中的其他页面?,javascript,node.js,express,web-applications,socket.io,Javascript,Node.js,Express,Web Applications,Socket.io,我想使用socket.io和express构建一个简单的web应用程序,该网站将包括2个页面: (房间第页和房间第页)。 “房间”页面是用户需要插入姓名的地方,用户可以创建自己的房间或从房间列表中加入现有房间。 在房间页面上,我想等待2个用户,然后显示一个琐事问题 如何将用户从房间页面重定向到房间页面而不丢失套接字连接?当我尝试使用带有“href”属性的HTML标记“a”时,它不起作用。 我猜这是因为页面正在重新加载,那么我如何导航到其他页面并保持套接字连接?您刚才描述了单页应用程序框架如此流行

我想使用socket.io和express构建一个简单的web应用程序,该网站将包括2个页面: (房间第页和房间第页)。 “房间”页面是用户需要插入姓名的地方,用户可以创建自己的房间或从房间列表中加入现有房间。 在房间页面上,我想等待2个用户,然后显示一个琐事问题

如何将用户从房间页面重定向到房间页面而不丢失套接字连接?当我尝试使用带有“href”属性的HTML标记“a”时,它不起作用。
我猜这是因为页面正在重新加载,那么我如何导航到其他页面并保持套接字连接?

您刚才描述了单页应用程序框架如此流行的一个关键原因-您可以在不重新加载或中断与服务器的数据连接的情况下更改用户的视图

在您的示例中,只要您从服务器请求另一个页面,socket.io连接就会断开,然后在下一个页面准备就绪时重新连接。您可以使用console.log语句来确认此行为

因此,不可能使用Express,除非您开始考虑解决方法,例如分隔页面的框架或iFrame,或者客户机上可以“赶上”新加载页面的时间戳。两者都不是好的选择


React、Angular和Vue是三种最流行的SPA框架,如果您的应用程序足够先进,需要一个稳定的socket.io连接,那么使用其中一种可能会让您受益。

谢谢您的回答。只是想确定一下,Ajax是否不适合这里?我的问题的解决方案是SPA框架(用于将用户导航到其他页面并显示不同的HTML页面)?SPA框架广泛使用Ajax。我强烈建议您停止编写代码一段时间,开始阅读有关这方面的文章和教程,因为您目前的理解与实现基本socket.io应用程序所需的基本知识之间似乎存在很大差距。