package websocket.messagehandler.example.endpoints;
import java.nio.ByteBuffer;
import java.util.logging.Logger;
import javax.websocket.EndpointConfig;
import javax.websocket.MessageHandler;
import javax.websocket.Session;
public class PartialEchoEndpoint extends javax.websocket.Endpoint {
private final static Logger log = Logger
.getLogger(PartialEchoEndpoint.class.getSimpleName());
@Override
public void onOpen(Session session, EndpointConfig config) {
final String sessionId = session.getId();
log.info("established session with id: " + sessionId);
// add text based message handler
session.addMessageHandler(new MessageHandler.Partial<String>() {
@Override
public void onMessage(String msg, boolean last) {
StringBuffer logMessage = new StringBuffer();
logMessage.append(sessionId).append(": text message: ")
.append(msg).append(" last: ").append(last);
log.info(logMessage.toString());
}
});
// add binary based message handler
session.addMessageHandler(new MessageHandler.Partial<ByteBuffer>() {
@Override
public void onMessage(ByteBuffer buffer, boolean last) {
StringBuffer logMessage = new StringBuffer();
logMessage.append(sessionId).append(": binary message: ")
.append(new String(buffer.array())).append(" last: ").append(last);
log.info(logMessage.toString());
}
});
}
}