diff options
4 files changed, 29 insertions, 2 deletions
diff --git a/AndroidAsync/src/com/koushikdutta/async/AsyncNetworkSocket.java b/AndroidAsync/src/com/koushikdutta/async/AsyncNetworkSocket.java index 45970ef..d6e58dd 100644 --- a/AndroidAsync/src/com/koushikdutta/async/AsyncNetworkSocket.java +++ b/AndroidAsync/src/com/koushikdutta/async/AsyncNetworkSocket.java @@ -8,6 +8,8 @@ import java.nio.channels.SocketChannel; import junit.framework.Assert; +import android.util.Log; + import com.koushikdutta.async.callback.CompletedCallback; import com.koushikdutta.async.callback.DataCallback; import com.koushikdutta.async.callback.WritableCallback; @@ -150,6 +152,7 @@ public class AsyncNetworkSocket implements AsyncSocket { b.limit(b.position()); b.position(0); ByteBufferList list = new ByteBufferList(b); + Log.d("ASYNC", list.peekString()); Util.emitAllData(this, list); if (b.remaining() != 0) { Assert.assertTrue(pending == null); diff --git a/AndroidAsync/src/com/koushikdutta/async/http/AsyncHttpClient.java b/AndroidAsync/src/com/koushikdutta/async/http/AsyncHttpClient.java index 4774053..306b37c 100644 --- a/AndroidAsync/src/com/koushikdutta/async/http/AsyncHttpClient.java +++ b/AndroidAsync/src/com/koushikdutta/async/http/AsyncHttpClient.java @@ -505,7 +505,7 @@ public class AsyncHttpClient { } public Future<WebSocket> websocket(final AsyncHttpRequest req, String protocol, final WebSocketConnectCallback callback) { - WebSocketImpl.addWebSocketUpgradeHeaders(req.getHeaders().getHeaders(), protocol); + WebSocketImpl.addWebSocketUpgradeHeaders(req, protocol); final SimpleFuture<WebSocket> ret = new SimpleFuture<WebSocket>(); Cancellable connect = execute(req, new HttpConnectCallback() { @Override diff --git a/AndroidAsync/src/com/koushikdutta/async/http/WebSocketImpl.java b/AndroidAsync/src/com/koushikdutta/async/http/WebSocketImpl.java index 38b7f1c..d9d841b 100644 --- a/AndroidAsync/src/com/koushikdutta/async/http/WebSocketImpl.java +++ b/AndroidAsync/src/com/koushikdutta/async/http/WebSocketImpl.java @@ -110,7 +110,8 @@ public class WebSocketImpl implements WebSocket { setupParser(); } - public static void addWebSocketUpgradeHeaders(RawHeaders headers, String protocol) { + public static void addWebSocketUpgradeHeaders(AsyncHttpRequest req, String protocol) { + RawHeaders headers = req.getHeaders().getHeaders(); final String key = UUID.randomUUID().toString(); headers.set("Sec-WebSocket-Version", "13"); headers.set("Sec-WebSocket-Key", key); @@ -118,6 +119,9 @@ public class WebSocketImpl implements WebSocket { headers.set("Upgrade", "websocket"); if (protocol != null) headers.set("Sec-WebSocket-Protocol", protocol); + headers.set("Pragma", "no-cache"); + headers.set("Cache-Control", "no-cache"); + req.getHeaders().setUserAgent("Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.15 Safari/537.36"); } public WebSocketImpl(AsyncSocket socket) { diff --git a/AndroidAsyncTest/src/com/koushikdutta/async/test/WebSocketTests.java b/AndroidAsyncTest/src/com/koushikdutta/async/test/WebSocketTests.java index c4d93d1..1301ec0 100644 --- a/AndroidAsyncTest/src/com/koushikdutta/async/test/WebSocketTests.java +++ b/AndroidAsyncTest/src/com/koushikdutta/async/test/WebSocketTests.java @@ -64,6 +64,26 @@ public class WebSocketTests extends TestCase { assertTrue(semaphore.tryAcquire(TIMEOUT, TimeUnit.MILLISECONDS)); } +// public void testEchoServer() throws Exception { +// final Semaphore semaphore = new Semaphore(0); +// +// AsyncHttpClient.getDefaultInstance().websocket("http://echo.websocket.org/?encoding=text", null, new WebSocketConnectCallback() { +// @Override +// public void onCompleted(Exception ex, WebSocket webSocket) { +// webSocket.setStringCallback(new StringCallback() { +// @Override +// public void onStringAvailable(String s) { +// assertEquals(s, "hello"); +// semaphore.release(); +// } +// }); +// webSocket.send("hello"); +// } +// }); +// +// assertTrue(semaphore.tryAcquire(TIMEOUT * 10, TimeUnit.MILLISECONDS)); +// } + @Override protected void tearDown() throws Exception { super.tearDown(); |