【问题标题】:Send a file in socket.io without changing the user's window location在 socket.io 中发送文件而不更改用户的窗口位置
【发布时间】:2016-11-05 15:53:56
【问题描述】:

我正在寻找是否有一种方法可以将 html 文件发送到 socket.io 连接,而无需断开它们并更改它们的窗口位置。现在我已经设置好了,如果有人试图访问我的网站,他们会被提示输入一个名字。当输入这个名字并且用户按下播放键时,他们将被发送到网站上的 /game 目录。他们还将发出他们的名字以及连接信息。当他们连接到 /game 目录时,它会断开用户的连接,导致他们的信息(包括他们的姓名)从玩家列表中删除。然后当玩家加入 /game 目录时,他们的名称为 null 并且他们的信息是全新的信息,例如坐标和事物。这是我用来检测 /game 请求的代码:

//Sends home page that asks for name.
app.get('/',function(req, res){
	res.sendFile(__dirname + "/client/home.html");
});
//Sends game file when /game is requested
app.get('/game',function(req, res){
	res.sendFile(__dirname + "/client/game.html");
});

有什么方法可以阻止用户在切换到游戏画面时断开连接?这样我可以保留他们的信息吗?或者我还能做些什么来解决这个问题?

【问题讨论】:

  • 您基本上可以使用 websockets 发送任何内容,但是您所拥有的是路由,您必须将数据发送到客户端,并在其中插入标记等,就像使用 ajax 一样,通常是这种事情的更好选择。
  • @adeneo 不确定我明白你的意思

标签: javascript node.js html sockets socket.io


【解决方案1】:

每次在浏览器中更改 URI 时,都应重新连接 websocket 连接。

我的建议是使用单页应用程序。后端将仅通过套接字或/和 REST 发送数据。前端将从后端渲染数据。现在您可以查看后端并在重新连接 Web 套接字时遇到此问题。

【讨论】:

    猜你喜欢
    • 2018-02-02
    • 2012-07-23
    • 1970-01-01
    • 1970-01-01
    • 2017-10-17
    • 2011-04-09
    • 1970-01-01
    • 1970-01-01
    • 2018-09-11
    相关资源
    最近更新 更多