aboutsummaryrefslogtreecommitdiff
path: root/src/javascript/jsc/bindings/webcore/WebSocketStream.cpp
diff options
context:
space:
mode:
authorGravatar Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> 2022-06-17 18:48:14 -0700
committerGravatar Jarred Sumner <jarred@jarredsumner.com> 2022-06-22 06:56:47 -0700
commit89f08aae2736182bc681446cab631014f51978a7 (patch)
tree2e78e88c41c1803df71369c2966ea5a75d55db3f /src/javascript/jsc/bindings/webcore/WebSocketStream.cpp
parent38cc869104584987d0a7f3b21be4da196bb3f390 (diff)
downloadbun-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.cpp22
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