【问题标题】:Socket.io sync between only two clients只有两个客户端之间的 Socket.io 同步
【发布时间】:2013-05-05 05:02:26
【问题描述】:

我正在尝试创建一个游戏,其中桌面浏览器是一种视图,而移动设备是另一种视图。您使用移动设备作为游戏控制器来使桌面中的角色移动。它类似于 chrome.com/supersyncsports。

使用 socket.io,将移动设备同步到桌面客户端的最佳方式是什么? chrome.com/supersyncsports 使用代码来同步两个客户端。他们是否使用类似于 socket.io 的命名空间或房间的东西,其中代码是房间的名称?

我正在寻找一种方法来同步两个客户端,并确保数据只发送到正确的设备和连接,而不是所有连接。使用 socket.io 实现这一目标的最佳方式是什么?

【问题讨论】:

  • 恕我直言,对于控制器(电话 -> 浏览器 - 无服务器)之类的东西,您可能想尝试WebRTC
  • 也许您可以将用户用作命名空间的房间。例如,“/users/wwwuser/”,其中模板呈现为“/users/”+current_user.username。或者,您可以让屏幕显示“通过输入代码‘2E12x’来配对您的设备”,其中 2E12x 是房间。

标签: javascript node.js socket.io


【解决方案1】:

正如film42所说,代码输入可能是最好的方法,使用类似服务器端的东西:

socket.on('room', function(room) {
    if(io.sockets.clients(room)>=2){
        socket.emit('error':"too Many connections")
    }
    else{
        socket.join(room);
    }
});

允许您将每个房间限制为两个客户

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-08-23
    • 1970-01-01
    • 2020-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-06
    • 2020-06-30
    相关资源
    最近更新 更多