Jersey的EventSource阻塞,直到第一个数据块被receiveid

时间:2016-01-20 06:56:17

标签: java jersey

我使用Jersey连接服务器SSE频道(也使用Jersey实现)。

客户代码:

...
WebTarget target = client.target(uri);
EventSource client2es = new EventSource(target)
...

我的问题是new EventSource(target)阻塞,直到服务器找到第一块数据。只要调用awaitFirstContact(),Jersey EventSource实现就会调用EventSource.open

为什么必须等待第一次接触?如何连接到事件源而不阻塞客户端,直到服务器发送第一个数据块?

1 个答案:

答案 0 :(得分:1)

查看EventSource的代码,json.loadsawaitFirstContact()方法中似乎没有必要。我认为肯定应该没有阻塞open方法,因为其他处理是异步完成的。所以我认为你必须解决它。 open构造函数中有第二个参数 - EventSource。您可以在那里传递boolean open,因此不会打开eventsource,而是创建新线程以在那里打开eventsource。

false