import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.websocket.server.WebSocketHandler;
import org.eclipse.jetty.websocket.servlet.WebSocketServletFactory;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.github.sarxos.webcam.Webcam;
import com.github.sarxos.webcam.ds.ipcam.IpCamDriver;
import com.github.sarxos.webcam.ds.ipcam.IpCamStorage;
/**
* This example demonstrates how webcam capture IP camera driver can be used with conjunction with
* websockets to feed data to the web application frontend.
*
* @author Bartosz Firyn (sarxos)
*/
public class WebcamWebSocketsExample {
static {
Webcam.setDriver(new IpCamDriver(new IpCamStorage("src/main/resources/cameras.xml")));
}
private static final Logger LOG = LoggerFactory.getLogger(WebcamWebSocketsExample.class);
public static void main(String[] args) throws Exception {
for (String name : WebcamCache.getWebcamNames()) {
LOG.info("Will read webcam {}", name);
}
Server server = new Server(8123);
WebSocketHandler wsHandler = new WebSocketHandler() {
@Override
public void configure(WebSocketServletFactory factory) {
factory.register(WebcamWebSocketHandler.class);
}
};
server.setHandler(wsHandler);
server.start();
server.join();
}
}