0

我有一个后端软件需要能够与基于壁虎的网络浏览器进行通信(反之亦然)。实现这一点的最佳方法是什么?由于 HTTP 是相当单向的(除了我认为非常“hacky”的反向 AJAX)我想知道如何做到这一点。

创建一个基于 NPAPI 的插件是一种选择吗?基于浏览器和后端之间交换的数据,浏览器需要对网页的 DOM 进行操作。操作需要非常动态,并且通信速度是一个重要要求。

我很高兴有任何帮助指出我正确的方向或提供可能值得一读的有用资源!

4

1 回答 1

1

如果您可以使用 WebSockets 之类的替代方案(或web-socket-js 之类的仿真,请参阅此处此处了解更多详细信息),编写浏览器插件并不是一件容易的事。

仅当此类替代方案由于特殊要求而无法为您提供足够的控制权时,您才应考虑编写浏览器插件。
有了它,您将获得本机代码的全部好处(对您选择的任何 API 的高度控制)以及随之而来的问题:

  • 你必须开始担心特权
  • 错误可能会使整个浏览器崩溃
  • 您可能必须处理平台和浏览器之间的行为差​​异
  • 您必须担心在多个平台上的分发
  • ...

如果您出于某种原因需要更高级别的控制,您可以

  • 在插件中实现您选择的连接处理
  • 让 JavaScript 发起连接并发送数据
  • 让 JavaScript 为传入数据等注册处理程序。
  • 在传入数据时调用这些处理程序并将数据传递给它们

要开始使用 NPAPI 插件,请参见此处,要支持 IE,您还必须编写内容扩展。最后,我建议看一下FireBreath,它已经为您完成了很多繁重的工作(隐藏了 IE 和 NPAPI 的不同 API,为您提供了更高级别的 API,包括对浏览器错误的修复,...)。

于 2010-11-06T23:51:22.150 回答