Skip to content

Commit 85e5926

Browse files
committed
Merge pull request codebutler#9 from vinaysshenoy/master
Added support for Message and JSONMessage
2 parents e683f20 + acc3552 commit 85e5926

File tree

2 files changed

+69
-4
lines changed

2 files changed

+69
-4
lines changed

AndroidManifest.xml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,8 @@
44
package="com.codebutler.android_websockets"
55
android:versionCode="1"
66
android:versionName="0.01">
7+
8+
<uses-sdk
9+
android:minSdkVersion="8"
10+
android:targetSdkVersion="8" />
711
</manifest>

src/com/codebutler/android_websockets/SocketIOClient.java

Lines changed: 65 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,10 @@ public static interface Handler {
2828

2929
public void onDisconnect(int code, String reason);
3030

31+
public void onJSON(JSONObject json);
32+
33+
public void onMessage(String message);
34+
3135
public void onError(Exception error);
3236
}
3337

@@ -87,6 +91,27 @@ public void run() {
8791
}
8892
});
8993
}
94+
95+
public void emit(final String message) {
96+
mSendHandler.post(new Runnable() {
97+
98+
@Override
99+
public void run() {
100+
mClient.send(String.format("3:::%s", message));
101+
}
102+
});
103+
}
104+
105+
public void emit(final JSONObject jsonMessage) {
106+
107+
mSendHandler.post(new Runnable() {
108+
109+
@Override
110+
public void run() {
111+
mClient.send(String.format("4:::%s", jsonMessage.toString()));
112+
}
113+
});
114+
}
90115

91116
private void connectSession() throws URISyntaxException {
92117
mClient = new WebSocketClient(new URI(mURL + "websocket/" + mSession), new WebSocketClient.Listener() {
@@ -110,11 +135,47 @@ public void onMessage(String message) {
110135
// heartbeat
111136
mClient.send("2::");
112137
break;
113-
case 3:
138+
case 3: {
114139
// message
115-
case 4:
116-
// json message
117-
throw new Exception("message type not supported");
140+
final String messageId = parts[1];
141+
final String dataString = parts[3];
142+
143+
if(!"".equals(messageId)) {
144+
mSendHandler.post(new Runnable() {
145+
146+
@Override
147+
public void run() {
148+
mClient.send(String.format("6:::%s", messageId));
149+
}
150+
});
151+
}
152+
mHandler.onMessage(dataString);
153+
break;
154+
}
155+
case 4: {
156+
//json message
157+
final String messageId = parts[1];
158+
final String dataString = parts[3];
159+
160+
JSONObject jsonMessage = null;
161+
162+
try {
163+
jsonMessage = new JSONObject(dataString);
164+
} catch(JSONException e) {
165+
jsonMessage = new JSONObject();
166+
}
167+
if(!"".equals(messageId)) {
168+
mSendHandler.post(new Runnable() {
169+
170+
@Override
171+
public void run() {
172+
mClient.send(String.format("6:::%s", messageId));
173+
}
174+
});
175+
}
176+
mHandler.onJSON(jsonMessage);
177+
break;
178+
}
118179
case 5: {
119180
final String messageId = parts[1];
120181
final String dataString = parts[3];

0 commit comments

Comments
 (0)