package com.koushikdutta.async.http.socketio.transport; import com.koushikdutta.async.AsyncServer; import com.koushikdutta.async.callback.CompletedCallback; import com.koushikdutta.async.callback.DataCallback; import com.koushikdutta.async.http.WebSocket; public class WebSocketTransport implements SocketIOTransport { private WebSocket webSocket; private StringCallback stringCallback; private String sessionId; public WebSocketTransport(WebSocket webSocket, String sessionId) { this.webSocket = webSocket; this.sessionId = sessionId; this.webSocket.setDataCallback(new DataCallback.NullDataCallback()); } @Override public boolean isConnected() { return this.webSocket.isOpen(); } @Override public void setClosedCallback(CompletedCallback handler) { this.webSocket.setClosedCallback(handler); } @Override public void disconnect() { this.webSocket.close(); } @Override public AsyncServer getServer() { return this.webSocket.getServer(); } @Override public void send(String message) { this.webSocket.send(message); } @Override public void setStringCallback(final StringCallback callback) { if (this.stringCallback == callback) return; if (callback == null) { this.webSocket.setStringCallback(null); } else { this.webSocket.setStringCallback(new WebSocket.StringCallback() { @Override public void onStringAvailable(String s) { callback.onStringAvailable(s); } }); } this.stringCallback = callback; } @Override public boolean heartbeats() { return true; } @Override public String getSessionId() { return this.sessionId; } }