我有一个socket.io和node.js的小项目。基本上,登陆页面(index.html)是一个等待空间的球员,谁可以同意与对方玩。在这种情况下,我希望将它们重定向到不同的html (game.html,它与index.html位于同一个文件夹中)。我想保持套接字连接,因为在游戏期间必须与服务器进行通信。我试过两种方法,但都失败了。在每种情况下,我都会更改客户端window.location (如描述的here)。
1)在index.html的javascript文件中,我添加了套接字对象的导出:export const socket = io();,然后将该对象导入到与game.html相关的其他javascript文件中。但出于某种原因这是行不通的。
2)我在与const socket = io();相关联的javascript文件中添加了另一个game.html。然后我就可以用那个东西了。但正如预期的那样,这将设置一个新连接,而先前的连接将丢失。
编辑:我在评论中也问过here这个问题。在那里我了解到,这个问题并不是真正可以解决的。因此,我现在只在index.html (在main.js中进行DOM操作)中呈现main.js。
发布于 2020-05-25 11:43:12
发布于 2020-05-09 16:56:35
Martin,如果您将客户机重定向到一个不同的端点,那么必须启动与服务器的新握手,这样您将得到一个新的socket.id。您的服务器发出的信息是什么?您能够重新呈现反映新数据的DOM而不是转到一个完全不同的文件吗?反应的国家管理也许能减轻你的问题吗?
如果你能给我一个代码示例,我也许可以帮你。
https://stackoverflow.com/questions/61697349
复制相似问题