/*
* https://webfolder.io/license.html
*/
package io.webfolder.cdp.channel;
import static org.glassfish.tyrus.client.ClientProperties.MASKING_KEY_GENERATOR;
import org.glassfish.tyrus.client.ClientManager;
import org.glassfish.tyrus.core.MaskingKeyGenerator;
import io.webfolder.cdp.Example;
import io.webfolder.cdp.Launcher;
import io.webfolder.cdp.session.Session;
import io.webfolder.cdp.session.SessionFactory;
@Example
public class TyrusWebSocketConnection {
public static void main(String[] args) {
ClientManager client = ClientManager.createClient();
client.getProperties()
.put(MASKING_KEY_GENERATOR, (MaskingKeyGenerator) () -> 0);
// Optionally use JakartaWebSocketFactory for jakarta compatible api
StandardWebSocketFactory channelFactory = new StandardWebSocketFactory(client);
Launcher launcher = new Launcher(channelFactory);
try (SessionFactory factory = launcher.launch();
Session session = factory.create()) {
factory.addCloseListener(() -> client.shutdown());
session.navigate("https://webfolder.io?cdp4j");
session.waitDocumentReady();
String content = session.getContent();
System.out.println(content);
} finally {
launcher.kill();
}
}
}