Firebase:onDisconnect方法背后的做法是什么? (AS3)

时间:2016-11-14 12:28:13

标签: actionscript-3 firebase firebase-realtime-database

首先,我想提一下,我了解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);
}

2 个答案:

答案 0 :(得分:3)

您共享的代码通过其REST API

访问Firebase数据库
new URLRequest("https://<YOUR-PROJECT-ID>.firebaseio.com/breakingnews.json");

这意味着它使用无连接方法与数据库进行交互。不幸的是,这也意味着无法注册onDisconnect()处理程序,因为它实际上必须在你所做的任何两个HTTP调用之间触发。

答案 1 :(得分:1)

没时间回答这个问题,但您必须对通信进行逆向工程。在幕后,它只是在As3代码中可以看到的HTTP(或类似)。要知道究竟发生了什么,请在JavaScript中获取一个包含您感兴趣的魔术行的示例代码,然后在浏览器中执行它。可以在浏览器的开发人员工具中监视所有请求。您应该能够识别发送的内容。

此外,它是JavaScript,这意味着您必须拥有可以简单阅读的源代码。它可能会缩小和/或混淆,但也许你可以找到一个可读的。

通过了解裸请求的外观,您可以使用能够执行必要网络通信的任何语言实现您自己的API。