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

Javascript 我如何在没有焦点的情况下将输入传递到网站?,javascript,html,directinput,Javascript,Html,Directinput,我在考虑制作一个网站,当有人玩电子游戏时,它会在后台或第二个屏幕上打开。即使浏览器当前未聚焦,我如何将有界键输入传递到网站?我希望避免使用java小程序,但如果这是唯一的方法,我也可以这样做。浏览器插件也可以工作,但其想法是避免任何用户安装,并使其尽可能简单。有什么想法吗?我想你只需要在页面有焦点时才需要这些信息 您可以附加HTML文档的onactivate事件,然后执行AJAX调用。根据输出设置div或其他内容; 使用Web套接字在后台将内容从服务器发送到客户端。 您必须先将数据发送到服务器才

我在考虑制作一个网站,当有人玩电子游戏时,它会在后台或第二个屏幕上打开。即使浏览器当前未聚焦,我如何将有界键输入传递到网站?我希望避免使用java小程序,但如果这是唯一的方法,我也可以这样做。浏览器插件也可以工作,但其想法是避免任何用户安装,并使其尽可能简单。有什么想法吗?

我想你只需要在页面有焦点时才需要这些信息

您可以附加HTML文档的onactivate事件,然后执行AJAX调用。根据输出设置div或其他内容; 使用Web套接字在后台将内容从服务器发送到客户端。
您必须先将数据发送到服务器才能使其正常工作。

实现此目的的一种方法是使用WebSocket

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

基本步骤可能如下所示:

用户1登录到web页面,websocket连接到服务器A。 用户1启动游戏 游戏向服务器A上的REST服务发送http请求以执行操作,比如说/move/east 服务器识别用户1的websocket,并向其发送“向东移动”命令 用户1的浏览器拾取websocket上的消息,并相应地更新页面 这不会影响你的游戏,但会给你一个相对整洁的方式在你的游戏和用户的浏览器会话之间进行交流。我认为这其中最困难的部分可能是您使用什么标识符将用户的游戏会话绑定到用户的浏览器会话,但也许您已经有了某种登录机制来实现这一点


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

游戏的格式是什么?本地应用程序?你能描述一下吗?从理论上讲,任何游戏都可以,但可能本地安装的游戏是它最常用的,所以浏览器根本没有焦点。你是想让浏览器从游戏中窃取焦点,还是想让数据进入已经在浏览器中打开的页面?我根本不想打断游戏,因此,理想情况下,没有焦点窃取。就像你说的,这只是一种将输入绑定键传递到浏览器中已经打开的页面的方法。如果浏览器完全没有焦点,这会起作用吗?全屏本机游戏就像战场4一样打开?我不明白你为什么要在别人看它之前将它放在那里。只要页面有焦点,您就可以下载它。是的,即使页面没有焦点,这也会起作用。这取决于浏览器,移动浏览器通常不会保持非活动选项卡处于活动状态。@Hershizer33:幸运吗?你需要更多的帮助吗?非常感谢你的跟进!事实上,这周我没有太多时间来做这个小项目,因为工作已经变得相当繁重了。我真的很感谢你的帮助,当我开始尝试时,我会更新这个问题。所以游戏已经存在了。比如,如果用户正在玩《战场4》,他们按下一个键,我们希望在我们的网站上发生特定的事情。@Hershizer33啊,那么触发器不是直接来自游戏本身吗?在这种情况下,如果您只是想每隔一段时间传递数据,websocket位本身就可以工作,或者像Patrick Hofman建议的那样使用ajax。