diff options
author | 2022-06-17 18:48:14 -0700 | |
---|---|---|
committer | 2022-06-22 06:56:47 -0700 | |
commit | 89f08aae2736182bc681446cab631014f51978a7 (patch) | |
tree | 2e78e88c41c1803df71369c2966ea5a75d55db3f /src/javascript/jsc/bindings/webcore/WebSocketStream.cpp | |
parent | 38cc869104584987d0a7f3b21be4da196bb3f390 (diff) | |
download | bun-89f08aae2736182bc681446cab631014f51978a7.tar.gz bun-89f08aae2736182bc681446cab631014f51978a7.tar.zst bun-89f08aae2736182bc681446cab631014f51978a7.zip |
more code
Diffstat (limited to 'src/javascript/jsc/bindings/webcore/WebSocketStream.cpp')
-rw-r--r-- | src/javascript/jsc/bindings/webcore/WebSocketStream.cpp | 22 |
1 files changed, 19 insertions, 3 deletions
diff --git a/src/javascript/jsc/bindings/webcore/WebSocketStream.cpp b/src/javascript/jsc/bindings/webcore/WebSocketStream.cpp index 434860854..8e059edae 100644 --- a/src/javascript/jsc/bindings/webcore/WebSocketStream.cpp +++ b/src/javascript/jsc/bindings/webcore/WebSocketStream.cpp @@ -46,7 +46,7 @@ uWS::WebSocketContext* WebSocketStreamBase<SSL, isServer>::registerClientContext /* 2 minutes timeout is good */ static unsigned short idleTimeout = 120; /* 64kb backpressure is probably good */ - static unsigned int maxBackpressure = 64 * 1024; + static unsigned int maxBackpressure = 128 * 1024 * 1024; static bool closeOnBackpressureLimit = false; /* This one depends on kernel timeouts and is a bad default */ static bool resetIdleTimeoutOnSend = false; @@ -71,13 +71,29 @@ uWS::WebSocketContext* WebSocketStreamBase<SSL, isServer>::registerClientContext opts->messageHandler = [](uWS::WebSocket<SSL, isServer, WebCore::WebSocket>* ws, std::string_view input, uWS::OpCode opCode) { auto* webSocket = ws->getUserData(); - webSocket->didReceiveData<uWS::WebSocket<SSL, isServer, WebCore::WebSocket>*>(ws, input.data(), input.length()); + if (opCode == uWS::OpCode::BINARY) { + webSocket->didReceiveBinaryData({ input.data(), input.length() }); + } else { + webSocket->didReceiveMessage(WTF::String::fromUTF8(input.data(), input.length())); + } }; + // pts->drainHandler = [](uWS::WebSocket<SSL, isServer, WebCore::WebSocket>* ws, std::string_view input, uWS::OpCode opCode) { + // auto* webSocket = ws->getUserData(); + // webSocket->didReceiveData(input.data(), input.length()); + // }; + opts->closeHandler = [](uWS::WebSocket<SSL, isServer, WebCore::WebSocket>* ws, int code, std::string_view message) { auto* webSocket = ws->getUserData(); - webSocket->didClose<uWS::WebSocket<SSL, isServer, WebCore::WebSocket>*>(ws, code, message.data(), message.length()); + webSocket->didClose( + ws->getBufferedAmount(), + code, + WTF::String::fromUTF8( + message.data(), + message.length())); }; + + return ctx; } }
\ No newline at end of file |