Skip to content

Commit 67c62a5

Browse files
committed
Clear implementations for frames
Introducing seperat classes for all the available frames
1 parent 3130019 commit 67c62a5

23 files changed

+794
-690
lines changed

src/main/java/org/java_websocket/WebSocketAdapter.java

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,19 +3,15 @@
33
import org.java_websocket.drafts.Draft;
44
import org.java_websocket.exceptions.InvalidDataException;
55
import org.java_websocket.exceptions.InvalidHandshakeException;
6-
import org.java_websocket.framing.CloseFrame;
76
import org.java_websocket.framing.Framedata;
8-
import org.java_websocket.framing.Framedata.Opcode;
9-
import org.java_websocket.framing.FramedataImpl1;
7+
import org.java_websocket.framing.PingFrame;
8+
import org.java_websocket.framing.PongFrame;
109
import org.java_websocket.handshake.ClientHandshake;
1110
import org.java_websocket.handshake.HandshakeImpl1Server;
1211
import org.java_websocket.handshake.ServerHandshake;
1312
import org.java_websocket.handshake.ServerHandshakeBuilder;
1413

1514
import java.net.InetSocketAddress;
16-
import java.util.Collection;
17-
import java.util.Timer;
18-
import java.util.TimerTask;
1915

2016
/**
2117
* This class default implements all methods of the WebSocketListener that can be overridden optionally when advances functionalities is needed.<br>
@@ -62,9 +58,7 @@ public void onWebsocketMessageFragment( WebSocket conn, Framedata frame ) {
6258
*/
6359
@Override
6460
public void onWebsocketPing( WebSocket conn, Framedata f ) {
65-
FramedataImpl1 resp = new FramedataImpl1( f );
66-
resp.setOptcode( Opcode.PONG );
67-
conn.sendFrame( resp );
61+
conn.sendFrame( new PongFrame( (PingFrame)f ) );
6862
}
6963

7064
/**

src/main/java/org/java_websocket/WebSocketImpl.java

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,10 @@
88
import org.java_websocket.exceptions.InvalidHandshakeException;
99
import org.java_websocket.exceptions.WebsocketNotConnectedException;
1010
import org.java_websocket.framing.CloseFrame;
11-
import org.java_websocket.framing.CloseFrameBuilder;
1211
import org.java_websocket.framing.Framedata;
1312
import org.java_websocket.framing.Framedata.Opcode;
1413
import org.java_websocket.framing.FramedataImpl1;
14+
import org.java_websocket.framing.PingFrame;
1515
import org.java_websocket.handshake.*;
1616
import org.java_websocket.server.WebSocketServer.WebSocketWorker;
1717
import org.java_websocket.util.Charsetfunctions;
@@ -454,7 +454,7 @@ private void close( int code, String message, boolean remote ) {
454454
wsl.onWebsocketError( this, e );
455455
}
456456
}
457-
sendFrame( new CloseFrameBuilder( code, message ) );
457+
sendFrame( new CloseFrame( code, message ) );
458458
} catch ( InvalidDataException e ) {
459459
wsl.onWebsocketError( this, e );
460460
flushAndClose( CloseFrame.ABNORMAL_CLOSE, "generated frame is invalid", false );
@@ -632,9 +632,7 @@ public void sendFrame( Framedata framedata ) {
632632
}
633633

634634
public void sendPing() throws NotYetConnectedException {
635-
FramedataImpl1 frame = new FramedataImpl1(Opcode.PING);
636-
frame.setFin(true);
637-
sendFrame(frame);
635+
sendFrame(new PingFrame());
638636
}
639637

640638
@Override

src/main/java/org/java_websocket/drafts/Draft.java

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,8 @@
1111
import org.java_websocket.exceptions.InvalidDataException;
1212
import org.java_websocket.exceptions.InvalidHandshakeException;
1313
import org.java_websocket.exceptions.LimitExedeedException;
14-
import org.java_websocket.framing.CloseFrame;
15-
import org.java_websocket.framing.FrameBuilder;
16-
import org.java_websocket.framing.Framedata;
14+
import org.java_websocket.framing.*;
1715
import org.java_websocket.framing.Framedata.Opcode;
18-
import org.java_websocket.framing.FramedataImpl1;
1916
import org.java_websocket.handshake.ClientHandshake;
2017
import org.java_websocket.handshake.ClientHandshakeBuilder;
2118
import org.java_websocket.handshake.HandshakeBuilder;
@@ -138,20 +135,24 @@ public List<Framedata> continuousFrame( Opcode op, ByteBuffer buffer, boolean fi
138135
if(op != Opcode.BINARY && op != Opcode.TEXT) {
139136
throw new IllegalArgumentException( "Only Opcode.BINARY or Opcode.TEXT are allowed" );
140137
}
141-
138+
DataFrame bui = null;
142139
if( continuousFrameType != null ) {
143-
continuousFrameType = Opcode.CONTINUOUS;
140+
bui = new ContinuousFrame();
144141
} else {
145142
continuousFrameType = op;
143+
if (op == Opcode.BINARY) {
144+
bui = new BinaryFrame();
145+
} else if (op == Opcode.TEXT) {
146+
bui = new TextFrame();
147+
}
146148
}
147-
148-
FrameBuilder bui = new FramedataImpl1( continuousFrameType );
149+
bui.setPayload( buffer );
150+
bui.setFin( fin );
149151
try {
150-
bui.setPayload( buffer );
152+
bui.isValid();
151153
} catch ( InvalidDataException e ) {
152154
throw new RuntimeException( e ); // can only happen when one builds close frames(Opcode.Close)
153155
}
154-
bui.setFin( fin );
155156
if( fin ) {
156157
continuousFrameType = null;
157158
} else {

0 commit comments

Comments
 (0)