1
0
mirror of synced 2026-08-03 14:06:55 +00:00

fix(websockets): filter for text and binary frames (#522)

This commit is contained in:
Max Schmitt
2021-07-20 14:07:31 +02:00
committed by GitHub
parent 1b58892e58
commit 5eecbb5252
2 changed files with 10 additions and 6 deletions
@@ -178,14 +178,22 @@ class WebSocketImpl extends ChannelOwner implements WebSocket {
void handleEvent(String event, JsonObject parameters) {
switch (event) {
case "frameSent": {
int opCode = parameters.get("opcode").getAsInt();
if (opCode != 1 && opCode != 2) {
break;
}
WebSocketFrameImpl WebSocketFrame = new WebSocketFrameImpl(
parameters.get("data").getAsString(), parameters.get("opcode").getAsInt() == 2);
parameters.get("data").getAsString(), opCode == 2);
listeners.notify(EventType.FRAMESENT, WebSocketFrame);
break;
}
case "frameReceived": {
int opCode = parameters.get("opcode").getAsInt();
if (opCode != 1 && opCode != 2) {
break;
}
WebSocketFrameImpl WebSocketFrame = new WebSocketFrameImpl(
parameters.get("data").getAsString(), parameters.get("opcode").getAsInt() == 2);
parameters.get("data").getAsString(), opCode == 2);
listeners.notify(EventType.FRAMERECEIVED, WebSocketFrame);
break;
}
@@ -102,10 +102,6 @@ public class TestWebSocket extends TestBase {
" ws.addEventListener('message', () => { ws.close(); });\n" +
" }", webSocketServer.getPort());
waitForCondition(socketClosed);
if (isWebKit()) {
// TODO: there is intermittent <received<A+g=> message in WebKit.
log.remove("received<A+g=>");
}
assertEquals("open", log.get(0), "Events: " + log);
assertEquals("close", log.get(3), "Events: " + log);
log.sort(String::compareTo);