首先,我想提一下,我了解Firebase onDisconnect
方法在JavaScript中的工作原理。它告诉服务器一旦用户断开连接该怎么做。
现在,我正在使用AS3。我应该如何告诉服务器与“onDisconnect'方法
当我尝试在JavaScript中调试代码时,它似乎没有向服务器发送内容。(或者我错了)。
JavaScript中的示例代码:
userRef.on('value', function(snapshot) {
if (snapshot.val()) {
userRef.onDisconnect().remove(); //this line does the magic
}
});
告诉服务器做什么的onDisconnect
方法正在做什么?如果用AS3编写,等效代码是什么?
编辑: AS3中的代码,作为here的引用,适用于实时数据库。
private var myStream:URLStream;
private function loadLiveFeed():void
{
var header:URLRequestHeader = new URLRequestHeader("Accept", "text/event-stream");
var request:URLRequest = new URLRequest("https://<YOUR-PROJECT-ID>.firebaseio.com/breakingnews.json");
request.requestHeaders.push(header);
myStream:URLStream = new URLStream();
myStream.addEventListener(ProgressEvent.PROGRESS, progress);
myStream.load(request);
}
private function progress(event:ProgressEvent):void
{
var message:String = myStream.readUTFBytes(myStream.bytesAvailable);
trace(message);
}
答案 0 :(得分:3)
您共享的代码通过其REST API:
访问Firebase数据库new URLRequest("https://<YOUR-PROJECT-ID>.firebaseio.com/breakingnews.json");
这意味着它使用无连接方法与数据库进行交互。不幸的是,这也意味着无法注册onDisconnect()
处理程序,因为它实际上必须在你所做的任何两个HTTP调用之间触发。
答案 1 :(得分:1)
没时间回答这个问题,但您必须对通信进行逆向工程。在幕后,它只是在As3代码中可以看到的HTTP(或类似)。要知道究竟发生了什么,请在JavaScript中获取一个包含您感兴趣的魔术行的示例代码,然后在浏览器中执行它。可以在浏览器的开发人员工具中监视所有请求。您应该能够识别发送的内容。
此外,它是JavaScript,这意味着您必须拥有可以简单阅读的源代码。它可能会缩小和/或混淆,但也许你可以找到一个可读的。
通过了解裸请求的外观,您可以使用能够执行必要网络通信的任何语言实现您自己的API。