Java EE Websocket:如何在不接收消息的情况下继续发送数据



我想要什么?
我正试图编写一个应用程序,其中客户端发送查询,并基于查询服务器得到推特流和推到客户端。

我有什么?
我有一个简单的结构在地方,客户端可以连接到服务器和服务器响应

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发送到客户端?

这对我有用

@OnMessage
public void tweets(final String message, Session client) throws IOException, InterruptedException {
    int i = 0;
    for (Session peer : client.getOpenSessions()) {
        while (i < 10) {
            System.out.println("sending ...");
            peer.getBasicRemote().sendText("Hello");
            Thread.sleep(2000);
            i++;
        }
    }
}

感谢Arun Gupta通过他的推文提供帮助:)

相关内容

  • 没有找到相关文章

最新更新