Skip to content
This repository was archived by the owner on Nov 2, 2020. It is now read-only.

Commit 1496cf4

Browse files
committed
Replace Options class with mUrl variable and added test for null pointer exception when url is null
1 parent 887d83c commit 1496cf4

File tree

2 files changed

+62
-75
lines changed

2 files changed

+62
-75
lines changed

src/main/java/com/clusterws/ClusterWS.java

Lines changed: 62 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010

1111
public class ClusterWS {
1212
private Socket mSocket;
13-
private Options mOptions;
13+
private String mUrl;
1414
private Emitter mEmitter;
1515
private boolean mUseBinary;
1616
private IClusterWSListener mClusterWSListener;
@@ -20,75 +20,32 @@ public class ClusterWS {
2020
private ReconnectionHandler mReconnectionHandler;
2121

2222
public ClusterWS(String url) {
23-
mOptions = new Options(url);
23+
if (url == null){
24+
throw new NullPointerException("Url must be provided");
25+
}
26+
mUrl = url;
2427
mChannels = new ArrayList<>();
2528
mReconnectionHandler = new ReconnectionHandler(null, null, null, null, this);
2629
createSocket();
2730
}
2831

29-
private void createSocket() {
30-
mSocket = new Socket(URI.create(mOptions.getUrl()), new ISocketEvents() {
31-
@Override
32-
public void onOpen() {
33-
mReconnectionHandler.onOpen();
34-
}
35-
36-
@Override
37-
public void onError(Exception exception) {
38-
if (mClusterWSListener != null) {
39-
mClusterWSListener.onError(exception);
40-
}
41-
}
42-
43-
@Override
44-
public void onClose(int code, String reason) {
45-
if (mPingHandler.getPingTimer() != null) {
46-
mPingHandler.getPingTimer().cancel();
47-
}
48-
49-
if (mReconnectionHandler.isInReconnectionState()) {
50-
return;
51-
}
52-
if (mReconnectionHandler.isAutoReconnect() && code != 1000) {
53-
mReconnectionHandler.reconnect();
54-
}
55-
56-
if (mClusterWSListener != null) {
57-
mClusterWSListener.onDisconnected(code, reason);
58-
}
59-
}
60-
61-
@Override
62-
public void onBinaryMessage(ByteBuffer bytes) {
63-
String message = StandardCharsets.UTF_8.decode(bytes).toString();
64-
onMessageReceived(message);
65-
}
66-
67-
@Override
68-
public void onMessage(String message) {
69-
onMessageReceived(message);
70-
}
71-
});
72-
mUseBinary = false;
73-
mEmitter = new Emitter();
74-
mMessageHandler = new MessageHandler();
75-
mPingHandler = new PingHandler();
76-
}
77-
7832
public ClusterWS setReconnection(Boolean autoReconnect, Integer reconnectionIntervalMin, Integer reconnectionIntervalMax, Integer reconnectionAttempts) {
7933
mReconnectionHandler = new ReconnectionHandler(autoReconnect, reconnectionIntervalMin, reconnectionIntervalMax, reconnectionAttempts, this);
8034
return this;
8135
}
8236

37+
public ClusterWS setClusterWSListener(IClusterWSListener clusterWSListener) {
38+
mClusterWSListener = clusterWSListener;
39+
return this;
40+
}
41+
8342
public void connect() {
8443
createSocket();
8544
mSocket.connect();
8645
}
8746

88-
89-
public ClusterWS setClusterWSListener(IClusterWSListener clusterWSListener) {
90-
mClusterWSListener = clusterWSListener;
91-
return this;
47+
public void disconnect(Integer closeCode, String reason) {
48+
mSocket.close(closeCode == null ? 1000 : closeCode, reason);
9249
}
9350

9451
public void on(String event, IEmitterListener listener) {
@@ -107,9 +64,6 @@ public WebSocket.READYSTATE getState() {
10764
return mSocket.getReadyState();
10865
}
10966

110-
public void disconnect(Integer closeCode, String reason) {
111-
mSocket.close(closeCode == null ? 1000 : closeCode, reason);
112-
}
11367

11468
public Channel getChannelByName(String channelName) {
11569
for (Channel channel :
@@ -164,6 +118,55 @@ PingHandler getPingHandler() {
164118
return mPingHandler;
165119
}
166120

121+
private void createSocket() {
122+
mSocket = new Socket(URI.create(mUrl), new ISocketEvents() {
123+
@Override
124+
public void onOpen() {
125+
mReconnectionHandler.onOpen();
126+
}
127+
128+
@Override
129+
public void onError(Exception exception) {
130+
if (mClusterWSListener != null) {
131+
mClusterWSListener.onError(exception);
132+
}
133+
}
134+
135+
@Override
136+
public void onClose(int code, String reason) {
137+
if (mPingHandler.getPingTimer() != null) {
138+
mPingHandler.getPingTimer().cancel();
139+
}
140+
141+
if (mReconnectionHandler.isInReconnectionState()) {
142+
return;
143+
}
144+
if (mReconnectionHandler.isAutoReconnect() && code != 1000) {
145+
mReconnectionHandler.reconnect();
146+
}
147+
148+
if (mClusterWSListener != null) {
149+
mClusterWSListener.onDisconnected(code, reason);
150+
}
151+
}
152+
153+
@Override
154+
public void onBinaryMessage(ByteBuffer bytes) {
155+
String message = StandardCharsets.UTF_8.decode(bytes).toString();
156+
onMessageReceived(message);
157+
}
158+
159+
@Override
160+
public void onMessage(String message) {
161+
onMessageReceived(message);
162+
}
163+
});
164+
mUseBinary = false;
165+
mEmitter = new Emitter();
166+
mMessageHandler = new MessageHandler();
167+
mPingHandler = new PingHandler();
168+
}
169+
167170
private void onMessageReceived(String message) {
168171
if (message.equals("#0")) {
169172
mPingHandler.setMissedPingToZero();
@@ -172,4 +175,5 @@ private void onMessageReceived(String message) {
172175
mMessageHandler.messageDecode(ClusterWS.this, message);
173176
}
174177
}
178+
175179
}

src/main/java/com/clusterws/Options.java

Lines changed: 0 additions & 17 deletions
This file was deleted.

0 commit comments

Comments
 (0)