据我所知,在 Firebase 中我可以使用“on”方法注册我的页面以进行回调。
根据他们的文档:
on() 用于监听特定位置的数据更改。
这是从 Firebase 读取数据的主要方式。
firebaseRef.on('value', function(dataSnapshot) {
// code to handle new value.
});
我的问题是:
它是如何工作的 ?
它如何知道服务器端发生了某些变化?
(更好)服务器如何“回调”浏览器?
一种答案可能是“轮询”。但我在 Firebase 文档或属性中没有看到有关此方法的参考来配置轮询时间......
有人知道吗?
许多
谢谢
Firebase 使用WebSockets http://en.wikipedia.org/wiki/WebSocket允许服务器“push http://en.wikipedia.org/wiki/Push_technology" 向客户端发送数据。由于并非所有浏览器版本都支持 WebSockets,因此它也会回退到长轮询 http://en.wikipedia.org/wiki/Push_technology#Long_polling对于那些浏览器。
它如何在服务器上工作的实现细节是专有的和复杂的——足以写一本关于SO问题范围的书。从逻辑上讲,其工作原理与宣传的完全一样:该服务的设计使得每当调用 set()、push() 或 update()(或 REST 等效项)时,它都会通知任何侦听器有关更改的信息。
无论浏览器是否使用 WebSocket,都不存在“轮询时间”,因为客户端不会重复联系服务器。长轮询意味着等待数据更改发生,而不是重复轮询以查看是否发生更改。正如您通过尝试本教程或任何以下内容所看到的实时示例 https://www.firebase.com/docs/examples.html,数据更改会在几毫秒内同步到所有客户端——无需配置。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)