如何在没有焦点的情况下将输入传递到网站?

时间:2014-03-29 21:38:45

标签: javascript html5 directinput

我正在考虑制作一个网站,当有人正在玩视频游戏时,该网站最终会在后台(或第二个屏幕)上打开。即使浏览器当前没有关注,我怎样才能将有界键输入传递给网站?我想避免使用java applets,但如果它是唯一的方法就可以做到。浏览器插件也可能有用,但我们的想法是避免任何用户安装并使其尽可能简单。有什么想法吗?

2 个答案:

答案 0 :(得分:0)

我猜你只需要在页面实际聚焦时才需要这些信息。

  • 您可以附加HTML文档的onactivate事件,然后进行AJAX调用。根据输出设置div或其他内容;
  • 使用Web套接字在后台将内容从服务器发送到客户端。

您必须先将数据发送到服务器才能正常工作。

答案 1 :(得分:0)

您实现此目标的一种方法是使用WebSocketsbasic usage example)。

websocket将为您提供浏览器和服务器之间的消息传递通道。例如,您的游戏可以呼叫托管在您服务器上的REST服务,该服务会触发将消息发送到您的用户浏览器所连接的websocket。

基本步骤可能是这样的:

  • 用户1登录网页,websocket连接到服务器A.
  • 用户1启动游戏
  • 游戏向服务器A上的REST服务发送http请求以进行操作,让我们说<server_address>/move/east
  • 之类的内容
  • 服务器识别用户1的websocket,并发送&#39;向东移动&#39;命令它
  • 用户1的浏览器在websocket上接收消息,并相应地更新页面

这不会集中窃取您的游戏,但会在您的游戏和用户的浏览器会话之间为您提供相对简洁的通信方式。我认为最困难的部分可能是你用来将用户的游戏会话绑定到用户的浏览器会话的标识符,但也许你已经有了某种登录机制可以做到这一点。

这不需要任何类型的插件或第三方扩展,因为现在大多数浏览器都支持websockets,但您必须编写一些服务器端代码。