Skip to content

Commit fbd83b5

Browse files
author
Vinay S Shenoy
committed
Added support for JSONMessage and Message to SocketIOClient
1 parent 4b2fa51 commit fbd83b5

File tree

1 file changed

+65
-4
lines changed

1 file changed

+65
-4
lines changed

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 onJSONMessage(JSONObject jsonMessage);
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.onJSONMessage(jsonMessage);
177+
break;
178+
}
118179
case 5: {
119180
final String messageId = parts[1];
120181
final String dataString = parts[3];

0 commit comments

Comments
 (0)