battleelog最近由EA与《战地3》一起发布,我很好奇它是如何在网页浏览器上发布《战地3》这样的游戏的?
更一般地说,网站如何在本地启动程序?
我是负责Battlelog发布部分的开发者之一。它是由已安装的web浏览器插件和JavaScript的组合处理的。启动游戏基本上要经过这些步骤。
- 我们通过使用注册表项 来找出您安装BF3.exe的位置
- 我们使用插件来启动带有几个命令行选项的exe
- 当游戏客户端启动时,它打开一个连接回插件,用于战斗日志和游戏之间的双向通信。
- 游戏客户端通过连接发送状态信息和错误信息,因此我们可以在战斗日志中显示进度和错误,也可以知道游戏何时关闭。
这要感谢你在battlelog上安装的插件。由于存在巨大的安全风险,网站不允许在您的本地机器上执行程序。如果你想在浏览器上下文之外完成几乎任何事情,就必须使用插件,这就是为什么当它们试图运行时,你必须明确地授予它们安装权限。
我认为有两种选择。首先,链接指向一个文件,该文件的扩展名只有该程序才能理解,比如当您单击.pdf链接时,pdf查看器将打开。我的第二个猜测是,链接可能使用了与所讨论的程序相关的另一个协议,链接真的以http://?
我几乎100%确定它使用了你必须安装的插件来管理发布过程,因为它还控制着游戏是否最小化。