From a612a7bfee1f49a1fba78a18874888e6ea21ea27 Mon Sep 17 00:00:00 2001 From: Chris Date: Wed, 16 May 2012 10:54:58 -0400 Subject: [PATCH 1/8] (use "git reset HEAD ..." to unstage) new file: LICENSE Adding license so people can officially do whatever they want with this code --- LICENSE | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 LICENSE diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..31e3d48 --- /dev/null +++ b/LICENSE @@ -0,0 +1,7 @@ +Copyright (c) 2012 Chris Willingham + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. From 90e010ad424f7af8989d4ddfb2242cfec5edb44c Mon Sep 17 00:00:00 2001 From: Chris Date: Wed, 16 May 2012 11:08:14 -0400 Subject: [PATCH 2/8] moving readme to main directory --- socket.io.client/README.markdown => README.markdown | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename socket.io.client/README.markdown => README.markdown (100%) diff --git a/socket.io.client/README.markdown b/README.markdown similarity index 100% rename from socket.io.client/README.markdown rename to README.markdown From ab686201cb2a3e397e3ef916101974c364caa442 Mon Sep 17 00:00:00 2001 From: fredsa Date: Fri, 22 Jun 2012 11:21:07 -0700 Subject: [PATCH 3/8] Ensure that we pass in the current endpoint (webSocket.getNamespace()) when creating an IOMessage. --- .../src/com/clwillingham/socket/io/IOSocket.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/socket.io.client/src/com/clwillingham/socket/io/IOSocket.java b/socket.io.client/src/com/clwillingham/socket/io/IOSocket.java index 18da507..f3c66cc 100644 --- a/socket.io.client/src/com/clwillingham/socket/io/IOSocket.java +++ b/socket.io.client/src/com/clwillingham/socket/io/IOSocket.java @@ -72,7 +72,7 @@ public void emit(String event, JSONObject... message) throws IOException { } data.put("name", event); data.put("args", args); - IOMessage packet = new IOMessage(IOMessage.EVENT, "", data.toString()); + IOMessage packet = new IOMessage(IOMessage.EVENT, webSocket.getNamespace(), data.toString()); webSocket.sendMessage(packet); } catch (JSONException e) { // TODO Auto-generated catch block @@ -81,7 +81,7 @@ public void emit(String event, JSONObject... message) throws IOException { } public void send(String message) throws IOException { - IOMessage packet = new IOMessage(IOMessage.MESSAGE, "", message); + IOMessage packet = new IOMessage(IOMessage.MESSAGE, webSocket.getNamespace(), message); webSocket.sendMessage(packet); } @@ -89,7 +89,7 @@ public synchronized void disconnect() { if (connected) { try { if (open) { - webSocket.sendMessage(new IOMessage(IOMessage.DISCONNECT, "", "")); + webSocket.sendMessage(new IOMessage(IOMessage.DISCONNECT, webSocket.getNamespace(), "")); } } catch (IOException e) { e.printStackTrace(); From ab9bf815746d9b95b568371ee700af1b2e3d19a9 Mon Sep 17 00:00:00 2001 From: Adam Fitzgerald Date: Sun, 12 Aug 2012 15:21:36 -0400 Subject: [PATCH 4/8] convert to gradle based build, move source from src to src/main/java, get json dependency from maven central --- build.gradle | 24 +++++++++++++++++++ .../com/clwillingham/socket/io/IOBeat.java | 0 .../com/clwillingham/socket/io/IOMessage.java | 0 .../com/clwillingham/socket/io/IOSocket.java | 0 .../clwillingham/socket/io/IOWebSocket.java | 0 .../com/clwillingham/socket/io/Message.java | 0 .../socket/io/MessageCallback.java | 0 7 files changed, 24 insertions(+) create mode 100644 build.gradle rename src/{ => main/java}/com/clwillingham/socket/io/IOBeat.java (100%) rename src/{ => main/java}/com/clwillingham/socket/io/IOMessage.java (100%) rename src/{ => main/java}/com/clwillingham/socket/io/IOSocket.java (100%) rename src/{ => main/java}/com/clwillingham/socket/io/IOWebSocket.java (100%) rename src/{ => main/java}/com/clwillingham/socket/io/Message.java (100%) rename src/{ => main/java}/com/clwillingham/socket/io/MessageCallback.java (100%) diff --git a/build.gradle b/build.gradle new file mode 100644 index 0000000..2bdbd83 --- /dev/null +++ b/build.gradle @@ -0,0 +1,24 @@ +apply plugin: 'java' +apply plugin: 'eclipse' + +sourceCompatibility = 1.6 +version = '1.0' + +repositories { + mavenCentral() +} + +dependencies { + compile files(projectDir.getAbsolutePath() + '/lib/WebSocket.jar') + compile group: 'commons-collections', name: 'commons-collections', version: '3.2' + compile group: 'org.json', name: 'json', version: '20090211' + testCompile group: 'junit', name: 'junit', version: '4.10' +} + +uploadArchives { + repositories { + flatDir { + dirs 'repos' + } + } +} \ No newline at end of file diff --git a/src/com/clwillingham/socket/io/IOBeat.java b/src/main/java/com/clwillingham/socket/io/IOBeat.java similarity index 100% rename from src/com/clwillingham/socket/io/IOBeat.java rename to src/main/java/com/clwillingham/socket/io/IOBeat.java diff --git a/src/com/clwillingham/socket/io/IOMessage.java b/src/main/java/com/clwillingham/socket/io/IOMessage.java similarity index 100% rename from src/com/clwillingham/socket/io/IOMessage.java rename to src/main/java/com/clwillingham/socket/io/IOMessage.java diff --git a/src/com/clwillingham/socket/io/IOSocket.java b/src/main/java/com/clwillingham/socket/io/IOSocket.java similarity index 100% rename from src/com/clwillingham/socket/io/IOSocket.java rename to src/main/java/com/clwillingham/socket/io/IOSocket.java diff --git a/src/com/clwillingham/socket/io/IOWebSocket.java b/src/main/java/com/clwillingham/socket/io/IOWebSocket.java similarity index 100% rename from src/com/clwillingham/socket/io/IOWebSocket.java rename to src/main/java/com/clwillingham/socket/io/IOWebSocket.java diff --git a/src/com/clwillingham/socket/io/Message.java b/src/main/java/com/clwillingham/socket/io/Message.java similarity index 100% rename from src/com/clwillingham/socket/io/Message.java rename to src/main/java/com/clwillingham/socket/io/Message.java diff --git a/src/com/clwillingham/socket/io/MessageCallback.java b/src/main/java/com/clwillingham/socket/io/MessageCallback.java similarity index 100% rename from src/com/clwillingham/socket/io/MessageCallback.java rename to src/main/java/com/clwillingham/socket/io/MessageCallback.java From 8a854ed494e499806dc80d3f925d27cc6c72103e Mon Sep 17 00:00:00 2001 From: Adam Fitzgerald Date: Sun, 12 Aug 2012 15:21:59 -0400 Subject: [PATCH 5/8] remove build.xml --- build.xml | 46 ---------------------------------------------- 1 file changed, 46 deletions(-) delete mode 100755 build.xml diff --git a/build.xml b/build.xml deleted file mode 100755 index 6cfa6a3..0000000 --- a/build.xml +++ /dev/null @@ -1,46 +0,0 @@ - - - - - (fork of) simple java socket.io client. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - From 67bb45f14befa4c2b02d04b24f91d5624a2e7ec5 Mon Sep 17 00:00:00 2001 From: Adam Fitzgerald Date: Sun, 12 Aug 2012 15:55:06 -0400 Subject: [PATCH 6/8] add example to new build, and move example source to a conventional location --- build.gradle | 6 ++++++ .../java}/com/clwillingham/socket/io/test/TestClient.java | 0 2 files changed, 6 insertions(+) rename {example => src/example/java}/com/clwillingham/socket/io/test/TestClient.java (100%) diff --git a/build.gradle b/build.gradle index 2bdbd83..f3e0a42 100644 --- a/build.gradle +++ b/build.gradle @@ -8,6 +8,12 @@ repositories { mavenCentral() } +sourceSets { + example +} + +configurations.exampleCompile.extendsFrom(configurations.compile) + dependencies { compile files(projectDir.getAbsolutePath() + '/lib/WebSocket.jar') compile group: 'commons-collections', name: 'commons-collections', version: '3.2' diff --git a/example/com/clwillingham/socket/io/test/TestClient.java b/src/example/java/com/clwillingham/socket/io/test/TestClient.java similarity index 100% rename from example/com/clwillingham/socket/io/test/TestClient.java rename to src/example/java/com/clwillingham/socket/io/test/TestClient.java From 693327c318188c63e8c24f202a2a20ff675ba6ff Mon Sep 17 00:00:00 2001 From: Adam Fitzgerald Date: Sun, 12 Aug 2012 15:55:56 -0400 Subject: [PATCH 7/8] remove json.jar from lib directory --- lib/json.jar | Bin 23521 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 lib/json.jar diff --git a/lib/json.jar b/lib/json.jar deleted file mode 100644 index cd00cfa16ece2db386339963fd5aad7d38bb8908..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23521 zcmZ^K1CTB}lkWJ8ZQHhO+qP|_KcWm3Xjr;BHzgxR|?@e`AP*0^g)m@e3 zNk>rz6bu>&2oea$Ppw)I=)V;xATS^~F;yWtDS2^*?{Od?#eYE|fqeggLSp)p=>G$^ z{zp;&(f@+V3CT-|i>av6%ZWe8O-{(l(9zGq$>7XqsS<$xaLv|oliZ&?#I%)CBwp@u?ERJp!%{TN8d-&M9V0K>>8L)

q1}VH=Q9-?+rKJw; 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 From 7f7ab054c6d21ebfe76be934b711297a5452cf55 Mon Sep 17 00:00:00 2001 From: Adam Fitzgerald Date: Sun, 12 Aug 2012 17:45:12 -0400 Subject: [PATCH 8/8] add send(JSONObject) overload, with an endpoint String param --- src/main/java/com/clwillingham/socket/io/IOSocket.java | 5 +++++ src/main/java/com/clwillingham/socket/io/IOWebSocket.java | 1 + 2 files changed, 6 insertions(+) diff --git a/src/main/java/com/clwillingham/socket/io/IOSocket.java b/src/main/java/com/clwillingham/socket/io/IOSocket.java index 1dcd176..8fea08f 100644 --- a/src/main/java/com/clwillingham/socket/io/IOSocket.java +++ b/src/main/java/com/clwillingham/socket/io/IOSocket.java @@ -80,6 +80,11 @@ public void emit(String event, JSONObject... message) throws IOException, Interr } } + public void send(String endpoint, JSONObject message) throws IOException, InterruptedException { + IOMessage packet = new IOMessage(IOMessage.JSONMSG, endpoint, message.toString()); + webSocket.sendMessage(packet); + } + public void send(String message) throws IOException, InterruptedException { IOMessage packet = new IOMessage(IOMessage.MESSAGE, "", message); webSocket.sendMessage(packet); diff --git a/src/main/java/com/clwillingham/socket/io/IOWebSocket.java b/src/main/java/com/clwillingham/socket/io/IOWebSocket.java index eb23056..8f3c15c 100644 --- a/src/main/java/com/clwillingham/socket/io/IOWebSocket.java +++ b/src/main/java/com/clwillingham/socket/io/IOWebSocket.java @@ -28,6 +28,7 @@ public IOWebSocket(URI arg0, IOSocket ioSocket, MessageCallback callback) { @Override public void onError(Exception arg0) { // TODO Auto-generated method stub + arg0.printStackTrace(); }