package co.flyver.httpserver; import android.util.Log; import java.io.IOException; import java.util.LinkedList; import fi.iki.elonen.IWebSocketFactory; import fi.iki.elonen.NanoHTTPD; import fi.iki.elonen.WebSocket; import fi.iki.elonen.WebSocketFrame; /** * Created by Petar Petrov on 1/27/15. */ public class WebSocketsWrapper extends WebSocket { private final String TAG = "WebSocket"; public static LinkedList<WebSocketsWrapper> openSockets = new LinkedList<>(); public WebSocketsWrapper(NanoHTTPD.IHTTPSession handshakeRequest) { super(handshakeRequest); openSockets.add(this); } public static IWebSocketFactory getWebSocketFactory() { return new IWebSocketFactory() { @Override public WebSocket openWebSocket(NanoHTTPD.IHTTPSession handshake) { return new WebSocketsWrapper(handshake); } }; } @Override protected void onPong(WebSocketFrame pongFrame) { Log.e(TAG, "Pong"); } @Override protected void onMessage(WebSocketFrame messageFrame) { Log.e(TAG, messageFrame.getTextPayload()); } @Override protected void onClose(WebSocketFrame.CloseCode code, String reason, boolean initiatedByRemote) { openSockets.removeFirst(); Log.e(TAG, "Closed"); } @Override protected void onException(IOException e) { } }