로깅 데이터를 클라이언트에 보내기 위해 WebSocketBehavior를 확장하여 개발 중입니다. 로깅 핸들러가 생성되었으며 필요한 경우 실행됩니다.Wicket 7 WebSocketBehavior
정확하게 로그 항목을 클라이언트로 보내고 콘솔 패널을 업데이트하는 방법을 이해하는 데 문제가 있습니다. 나는 이미 onMessage 메소드가 WeSocketRequestHandler를 전달하려는 메시지와 함께 인수로 취하는 콘솔로 재정의해야한다는 것을 알고 있습니다. 정확히 어떻게 onMessage가 제대로 발사 되나요? 여기에 내가 사용하고있는 코드는 다음과 같습니다
public class LogWebSocketBehavior extends WebSocketBehavior {
private static final long serialVersionUID = 1L;
Console console;
private Handler logHandler;
private Model model;
public LogWebSocketBehavior(Console console) {
super();
configureLogger();
this.console = console;
}
private void configureLogger() {
Logger l = Logger.getLogger(AppUtils.loggerName);
logHandler = getLoggerHandler();
l.addHandler(logHandler);
}
@Override
protected void onMessage(WebSocketRequestHandler handler, TextMessage message) {
console.info(handler, model.getObject());
}
private Handler getLoggerHandler() {
return new Handler() {
@Override
public void publish(LogRecord record) {
model.setObject(record);
}
@Override
public void flush() {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
@Override
public void close() throws SecurityException {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
};
}
private Collection<IWebSocketConnection> getConnectedClients() {
IWebSocketConnectionRegistry registry = new SimpleWebSocketConnectionRegistry();
return registry.getConnections(getApplication());
}
private void sendToAllConnectedClients(String message) {
Collection<IWebSocketConnection> wsConnections = getConnectedClients();
for (IWebSocketConnection wsConnection : wsConnections) {
if (wsConnection != null && wsConnection.isOpen()) {
try {
wsConnection.sendMessage("test");
} catch (IOException e) {
}
}
}
}
}
내가 필요에 따라 메시지를 제공에 원하는 로거는 작동하지만 실제로 내 콘솔을 업데이트 할 onMessage 메소드를 해고하는 방법을 찾을 수 없습니다. 모든 도움을 주시면 감사하겠습니다 ...
난 그냥 당신에 대해 얘기하고 정확히 추가 한 확장합니다. 그래도 onMessage 메서드는 실행되지 않습니다. –
고맙습니다. 저를 올바른 길로 인도하십시오. 기본적으로 다음과 같이 작동하는 동작이 있습니다. –
사실, 원본에 추가 할 것입니다. –