我一直想要一种方法来建立与服务器的套接字连接,并允许服务器操纵页面DOM。例如,这可以在股票报价页面中使用,因此服务器可以在新报价可用时推送它们。
我知道这是HTTP的请求/响应协议的经典限制(功能?),但我认为这可以作为Firefox插件实现(跨浏览器兼容性对我的应用程序并不重要)。 Java / Flash解决方案是不可接受的,因为(据我所知)他们住在一个盒子里,不能与DOM交互。
任何人都可以确认这是否在Firefox插件的能力范围内?有人已经创建了这个或类似的东西吗?
答案 0 :(得分:2)
您可能希望查看Comet,这是一个长期运行的HTTP连接的奇特名称,服务器可以将更新推送到页面。
答案 1 :(得分:2)
应该可以。我开发了一个xulrunner应用程序,它使用套接字连接到TCP服务器。扩展开发可能具有相同的功能。我使用了mozdev的库 - JSLib。具体来看networking code。有Firefox add-on for JSlib add-on for Firefox的事实会让人更加自信。
基本上,据我所知,套接字不是JavaScript的一部分,但通过XPCOM,您可以像在任何c / c ++应用程序中那样获得原始套接字访问。
警告: JSLib似乎没有受到太多关注,邮件列表也很稀疏。
答案 2 :(得分:1)
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); }
答案 3 :(得分:0)
你可能想看看Comet
a.k.a。 server push。这不会让服务器直接“更新”客户端页面,但所有新数据都通过单个连接发送到页面。
当然,Firefox extension(以及plugins,它们是可以执行任何其他应用程序可以执行的任何操作的二进制库)也可以使用套接字。请参阅1,2。