【问题标题】:Node.js - Connect to same server, same user, using multiple html filesNode.js - 使用多个 html 文件连接到同一服务器、同一用户
【发布时间】:2016-10-06 07:09:07
【问题描述】:

我正在尝试将我的 HTML5 画布游戏集成到单个 Web 界面中。

按下按钮时,html 游戏会填满<div id="game">。但我只在我的 javascript 文件中定义了我的 node.js。

现在我可能也可以在 HTML2 文件中定义它,但它似乎会创建 2 个单独的连接。

有没有办法在只有 1 个连接的情况下做到这一点?

简单地说 - 2 个独立的 HTML/javascript 文件具有完全相同的连接

谢谢

HTML

<div id="game">
    <button id="gameFile">MyGame</button>
</div>

Javascript

var socket = io('http://192.168.0.5:2000');

socket.on('connect', function() {
    socket.emit('login', {

    });
});
$('#gameFile').click(function(event){
     document.getElementById("game").innerHTML='<object type="text/html" data="games/myGame/index.html" style="width:100%; height: 100%;" ></object>';
});

HTML2 (games/myGame/index.html)

<canvas id="myCanvas">
    Your browser does not support the HTML5 canvas tag :(
</canvas>
<script>
    socket.emit('msg', "2nd HTML connected");
</script>

【问题讨论】:

  • 您的问题陈述有冲突。您打算拥有 1 个具有 2 个视图的 Web 应用程序,还是 2 个独立的 Web 应用程序?
  • 对不起。一次查看 2 个单独的应用程序。它是一个嵌入在通用 html 中的单独 html 视图。
  • 你不能使用sessionId 来确定和加入同一个房间吗?比如socket.on('connection', function (socket) {socket.join(socket.handshake.sessionID);});?
  • 第二个单独的html进入&lt;div id="game"&gt;标签
  • @DavidR 我认为这正是我想要的。你有机会提供一个小的快速样品吗?我是个业余爱好者

标签: javascript node.js html socket.io


【解决方案1】:

可能你不能这样。

如果是任何其他窗口,您将需要连接套接字。 但是,您可以在服务器上使用 ChatRooms 的概念来同步它们,只需在 Room 中添加来自用户的所有连接池。

####Edit###

您可以简单地将套接字连接加入聊天室:

io.on('connection', function(socket){
  socket.join('some room');
});

然后只需向该房间成员广播一条消息:

io.to('some room').emit('some event'):

您可以简单地使用房间名称来对应某些用户身份。

参考:http://socket.io/docs/rooms-and-namespaces/#

【讨论】:

  • 您好,感谢您的回答。您是否有机会提供一个快速示例和您的答案,以便我更好地从视觉上理解?谢谢
  • 您可以简单地将套接字连接加入聊天室:io.on('connection', function(socket){ socket.join('some room'); });然后只需向该房间成员广播一条消息: io.to('some room').emit('some event'): 您可以简单地使用 Room-names 来对应某个用户身份。参考:socket.io/docs/rooms-and-namespaces/#
猜你喜欢
  • 2013-02-23
  • 1970-01-01
  • 2016-12-24
  • 2018-12-15
  • 2019-03-15
  • 2014-02-01
  • 2021-01-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多