2
我是Firebase的新手,并构建了一个原型来测试是否适合我们的需求。我有一个聊天示例,并且运行良好。Firebase服务器发送的事件 - 如何构建Java/JavaScript客户端
接下来是需要听取更改。我曾尝试使用Java和JavaScript连接到支持服务器发送事件的REST API,但我无法使其工作。
在Java中我写了下面的代码:
public class FirebaseApplication {
@Test
public void test() throws Exception{
Client client = ClientBuilder.newBuilder()
.register(SseFeature.class).build();
WebTarget webTarget = client.target(new URI(
"http://incandescent-torch-xxxx.firebaseio.com/logs.json"));
EventSource eventSource = new EventSource(webTarget) {
@Override
public void onEvent(InboundEvent inboundEvent) {
System.out.println("Data " + inboundEvent.readData());
}
};
Thread.sleep(20000);
System.out.println("Exit");
eventSource.close();
}
}
我却没有收到任何事件,即使我在平行于小程序的执行。
接下来我尝试使用JavaScript客户端,但结果相同。我从来没有收到任何事件。
var source = new EventSource(
"http://incandescent-torch-xxxx.firebaseio.com/logs.json");
source.addEventListener('message', function(e) {
console.log(e.data);
}, false);
source.addEventListener('open', function(e) {
console.log("open");
// Connection was opened.
}, false);
source.addEventListener('error', function(e) {
if (e.readyState == EventSource.CLOSED) {
console.log("close");
// Connection was closed.
}else{
console.log("error");
console.log(e);
}
}, false);
有没有人有我所做的错误的线索?
你不能使用Java客户端火力地堡提供任何理由吗? https://www.firebase.com/docs/android/,尽管它们经常被标记为“android库”,但它们也在常规JRE上工作。 – 2015-02-23 13:49:25
试过了,他们确实有效。谢谢 – 2015-02-24 11:12:25