【发布时间】:2014-07-11 17:19:02
【问题描述】:
我想要什么?
我正在尝试编写一个应用程序,其中客户端发送查询并基于查询服务器获取 twitter-stream 并推送到客户端。
我有什么?
我有一个简单的结构,客户端可以连接到服务器并且服务器响应
TweetStreamServer
package com.self.tweetstream;
import javax.websocket.OnMessage;
import javax.websocket.server.ServerEndpoint;
@ServerEndpoint("/tweets")
public class TweetStreamServer {
@OnMessage
public String tweets(final String message) {
return message;
}
}
TweetStreamClient
@ClientEndpoint
public class TweetStreamClient {
public static CountDownLatch latch;
public static String response;
@OnOpen
public void onOpen(Session session) {
try{
session.getBasicRemote().sendText("Hello World!");
} catch (IOException e) {
e.printStackTrace();
}
}
@OnMessage
public void printTweets(final String tweet) {
System.out.println("Tweet:" + tweet);
response = tweet;
latch.countDown();
}
}
TweetStreamTest
@Test
public void test() throws URISyntaxException, IOException, DeploymentException, InterruptedException {
System.out.println("URI: " + getEndpointUrl());
TweetStreamClient.latch = new CountDownLatch(1);
Session session = connectToServer(TweetStreamClient.class, "tweets");
assertNotNull(session);
assertTrue(TweetStreamClient.latch.await(10, TimeUnit.SECONDS));
assertEquals("Hello World!", TweetStreamClient.response);
}
问题
我很困惑我现在如何发送从 Twitter 收到的连续推文,因为我的服务器方法按照 API 是
@OnMessage
public String tweets(final String message) {
return message;
}
这意味着它需要一条消息才能返回任何东西。
如何将来自 Twitter 的即将到来的数据发送到客户端?
【问题讨论】:
标签: java jakarta-ee twitter websocket java-ee-7