001package cz.tdp.kshield.notification; 002 003import javax.websocket.EndpointConfig; 004import javax.websocket.OnClose; 005import javax.websocket.OnError; 006import javax.websocket.OnMessage; 007import javax.websocket.OnOpen; 008import javax.websocket.RemoteEndpoint; 009import javax.websocket.Session; 010 011/** 012 * Implementation of WebSocket Endpoint. You must provide access to KShieldAuthManager instance 013 */ 014public abstract class AbstractKShieldEndpoint extends AbstractWebSocketEndpoint 015{ 016 private RemoteEndpoint.Async remote; 017 018 @OnOpen 019 public void onOpen(Session session, EndpointConfig config) { 020 onOpenImpl(); 021 022 remote = session.getAsyncRemote(); 023 } 024 025 @OnClose 026 public void onClose(Session session, EndpointConfig config) { 027 onCloseImpl(); 028 } 029 030 @OnError 031 public void onError(Session session, Throwable e) { 032 onErrorImpl(e); 033 } 034 035 @OnMessage 036 public String onMessage(String message, Session session) { 037 return onMessageImpl(message); 038 } 039 040 @Override 041 protected void send(String message) { 042 if (remote != null) { 043 remote.sendText(message); 044 } 045 } 046 047 @Override 048 protected void reset() { 049 remote = null; 050 051 super.reset(); 052 } 053}