提问人: 提问时间:8/17/2008 更新时间:9/18/2012 访问量:4537
Firefox 插件 - 套接字
Firefox plugin - sockets
问:
我一直想要一种方法来与服务器建立套接字连接并允许服务器操作页面 DOM。例如,这可以在股票报价页面中使用,因此服务器可以在新报价可用时推送它们。
我知道这是HTTP请求/响应协议的经典限制(功能?),但我认为这可以作为Firefox插件实现(跨浏览器兼容性对我的应用程序来说并不重要)。Java/Flash 解决方案是不可接受的,因为(据我所知)它们生活在一个盒子里,不能与 DOM 交互。
谁能确认这是否在Firefox插件的能力范围内?有人已经创建了这个或类似的东西吗?
答:
您可能想看看 Comet,这是一个长时间运行的 HTTP 连接的花哨名称,服务器可以在其中将更新推送到页面。
你可能想看看彗星
又名服务器推送。这不会让服务器直接“更新”客户端页面,而是通过单个连接将所有新数据发送到该页面。
当然,Firefox扩展(以及插件,它们是二进制库,可以做任何其他应用程序可以做的任何事情)也可以与套接字一起使用。见 1、2。
这应该是可能的。我开发了一个 xulrunner 应用程序,它使用套接字连接到 TCP 服务器。扩展开发可能具有相同的功能。我使用了 mozdev - JSLib 的库。具体检查网络代码。事实上,有一个 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); }
评论