我想阅读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();
}
}
答案 0 :(得分:0)
您必须做两件事:
创建一个实现org.eclipse.jetty.websocket.api.WebSocketListener的类。在此类中,您可以实现捕获套接字通信的方式。
webSocketCreated()方法获取一个WebSocket实例作为参数。使用第一步中创建的侦听器调用setWebSocketListener(yourListener)。
现在您已经完成了,每次websocket收到数据时都会调用您的侦听器。