Достижение события websocket в сообщении HtmlUnit - PullRequest
0 голосов
/ 23 ноября 2018

Я хочу прочитать сообщения, полученные веб-сокетом, в событии onmessage.Я следую объяснениям, сделанным в этой теме

Я только смог добавить Слушатель и получить информацию при создании веб-сокета, но я не знаю, как читать сообщения, полученные веб-сокетомв событии onmessage.

Вот мой код:

    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 голосов
/ 25 ноября 2018

Вы должны сделать две вещи:

  1. реализовать свой собственный слушатель

Создать класс, который реализует org.eclipse.jetty.websocket.api.WebSocketListener.Внутри этого класса вы можете реализовать способ захвата связи через сокет.

установить слушателя

Метод webSocketCreated () возвращает экземпляр WebSocket в качестве параметра.Вызовите setWebSocketListener (yourListener) с прослушивателем, который вы создали на первом шаге.

Теперь все готово, и ваш прослушиватель будет вызываться каждый раз, когда websocket отправляет данные.

...