题
我一直想要一种方法来与服务器建立套接字连接并允许服务器操作页面 DOM。例如,这可以用在股票报价页面中,因此服务器可以在新报价可用时推送新报价。
我知道这是 HTTP 请求/响应协议的一个经典限制(功能?),但我认为这可以作为 Firefox 插件实现(跨浏览器兼容性对我的应用程序并不重要)。Java/Flash 解决方案是不可接受的,因为(据我所知)它们位于一个盒子中并且无法与 DOM 交互。
谁能确认这是否在 Firefox 插件的能力范围内?有人已经创建了这个或类似的东西吗?
解决方案
您可能想看看 彗星 这是一个长时间运行的 HTTP 连接的奇特名称,服务器可以将更新推送到页面。
其他提示
这应该是可能的。我开发了一个 xulrunner 应用程序,它使用套接字连接到 TCP 服务器。扩展开发可能具有相同的功能。我使用了 mozdev 的库 - JS库. 。具体查看一下 网络代码. 。事实是有一个 Firefox 的 JSlib 插件 Firefox 的插件 使人更加自信。
本质上,据我了解,套接字不是 JavaScript 的一部分,但通过 XPCOM,您可以像在任何 C/C++ 应用程序中一样获得原始套接字访问。
警告: JSLib 似乎没有受到太多关注,而且邮件列表也相当稀疏。
Java/Flash解决方案是不可接受的,因为(据我所知)它们生活在盒子里,无法与DOM互动。
Java 的情况实际上并非如此。您可以通过 JavaScript 与 Java 交互并更改 DOM。
http://stephengware.com/proj/javasocketbridge/
在这个例子中,有两个 JavaScript 方法用于交互
发送:
socket_send("This was sent via the socket\n\n");
收到:
on_socket_get(message){ more_code(message); }