到达onmessage Websocket事件HtmlUnit

时间:2018-11-22 23:18:23

标签: java websocket listener message htmlunit

我想阅读onmessage事件中网络套接字收到的消息。我遵循此thread

中的解释

我只能实现添加一个侦听器并在创建websocket时得到通知,但我不知道如何在onmessage事件中读取websocket接收到的消息。

这是我的代码:

    public class TestBet365Socket {
  public static void main(String[] args) throws Exception {


      /* turn off annoying htmlunit warnings */
        java.util.logging.Logger.getLogger("com.gargoylesoftware").setLevel(java.util.logging.Level.OFF);



        WebClient client = new WebClient(BrowserVersion.CHROME);  
        client.getOptions().setCssEnabled(false);  
        client.getOptions().setJavaScriptEnabled(true);
        client.getOptions().setThrowExceptionOnScriptError(false);



        client.getInternals().addListener(new Listener() {

            @Override
            public void webSocketCreated(WebSocket arg0) {

                System.out.println("Websocket Created " + arg0);

            }
        });



        HtmlPage page = client.getPage("https://mobile.bet365.com/Default.aspx?lng=3");
        client.waitForBackgroundJavaScript(10000);

        List<NameValuePair> response =page.getWebResponse().getResponseHeaders();
        for (NameValuePair header : response) {
             System.out.println(header.getName() + " = " + header.getValue());
         }
        System.out.println(page.asText());

        client.close();
  }
}

1 个答案:

答案 0 :(得分:0)

您必须做两件事:

  1. 实现您自己的侦听器

创建一个实现org.eclipse.jetty.websocket.api.WebSocketListener的类。在此类中,您可以实现捕获套接字通信的方式。

  1. 设置收听者

webSocketCreated()方法获取一个WebSocket实例作为参数。使用第一步中创建的侦听器调用setWebSocketListener(yourListener)。

现在您已经完成了,每次websocket收到数据时都会调用您的侦听器。