到达 onmessage websocket 事件 HtmlUnit
Reaching onmessage websocket event HtmlUnit
我想在 onmessage 事件中读取 websocket 收到的消息。我遵循 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();
}
}
你必须做两件事:
- 实施您自己的侦听器
创建一个实现 org.eclipse.jetty.websocket.api.WebSocketListener 的 class。在此 class 中,您可以实现捕获套接字通信的方式。
- 设置监听器
webSocketCreated() 方法获取一个 WebSocket 实例作为参数。使用您在第一步中创建的侦听器调用 setWebSocketListener(yourListener)。
现在你已经完成了,每次 websocket 获取数据时都会调用你的侦听器。
我想在 onmessage 事件中读取 websocket 收到的消息。我遵循 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();
}
}
你必须做两件事:
- 实施您自己的侦听器
创建一个实现 org.eclipse.jetty.websocket.api.WebSocketListener 的 class。在此 class 中,您可以实现捕获套接字通信的方式。
- 设置监听器
webSocketCreated() 方法获取一个 WebSocket 实例作为参数。使用您在第一步中创建的侦听器调用 setWebSocketListener(yourListener)。
现在你已经完成了,每次 websocket 获取数据时都会调用你的侦听器。