aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> 2022-10-17 21:48:37 -0700
committerGravatar Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> 2022-10-17 21:48:37 -0700
commita10a8e9c70d883c230fd5f8f8d2c2550e35ea80c (patch)
treea261184cad4654fa1038fac6f570568a0735823e
parentb595ddf20dee4710f0b4c4b46cd117bcb78e7af6 (diff)
downloadbun-a10a8e9c70d883c230fd5f8f8d2c2550e35ea80c.tar.gz
bun-a10a8e9c70d883c230fd5f8f8d2c2550e35ea80c.tar.zst
bun-a10a8e9c70d883c230fd5f8f8d2c2550e35ea80c.zip
Load fewer copies of uWS
-rw-r--r--src/bun.js/bindings/ScriptExecutionContext.cpp10
-rw-r--r--src/bun.js/bindings/webcore/WebSocket.cpp83
-rw-r--r--src/bun.js/bindings/webcore/WebSocket.h4
3 files changed, 45 insertions, 52 deletions
diff --git a/src/bun.js/bindings/ScriptExecutionContext.cpp b/src/bun.js/bindings/ScriptExecutionContext.cpp
index 73b8b4c01..5b8d88871 100644
--- a/src/bun.js/bindings/ScriptExecutionContext.cpp
+++ b/src/bun.js/bindings/ScriptExecutionContext.cpp
@@ -3,8 +3,8 @@
#include "ScriptExecutionContext.h"
#include "webcore/WebSocket.h"
-
-#include <uws/src/App.h>
+#include "libusockets.h"
+#include "_libusockets.h"
extern "C" void Bun__startLoop(us_loop_t* loop);
@@ -27,7 +27,7 @@ static void registerHTTPContextForWebSocket(ScriptExecutionContext* script, us_s
us_socket_context_t* ScriptExecutionContext::webSocketContextSSL()
{
if (!m_ssl_client_websockets_ctx) {
- us_loop_t* loop = (us_loop_t*)uWS::Loop::get();
+ us_loop_t* loop = (us_loop_t*)uws_get_loop();
us_socket_context_options_t opts;
memset(&opts, 0, sizeof(us_socket_context_options_t));
this->m_ssl_client_websockets_ctx = us_create_socket_context(1, loop, sizeof(size_t), opts);
@@ -42,7 +42,7 @@ us_socket_context_t* ScriptExecutionContext::webSocketContextSSL()
us_socket_context_t* ScriptExecutionContext::webSocketContextNoSSL()
{
if (!m_client_websockets_ctx) {
- us_loop_t* loop = (us_loop_t*)uWS::Loop::get();
+ us_loop_t* loop = (us_loop_t*)uws_get_loop();
us_socket_context_options_t opts;
memset(&opts, 0, sizeof(us_socket_context_options_t));
this->m_client_websockets_ctx = us_create_socket_context(0, loop, sizeof(size_t), opts);
@@ -57,7 +57,7 @@ us_socket_context_t* ScriptExecutionContext::webSocketContextNoSSL()
template<bool SSL>
static us_socket_context_t* registerWebSocketClientContext(ScriptExecutionContext* script, us_socket_context_t* parent)
{
- us_loop_t* loop = (us_loop_t*)uWS::Loop::get();
+ us_loop_t* loop = (us_loop_t*)uws_get_loop();
if constexpr (SSL) {
us_socket_context_t* child = us_create_child_socket_context(1, parent, sizeof(size_t));
Bun__WebSocketClientTLS__register(script->jsGlobalObject(), loop, child);
diff --git a/src/bun.js/bindings/webcore/WebSocket.cpp b/src/bun.js/bindings/webcore/WebSocket.cpp
index 6f70b898c..820f0e804 100644
--- a/src/bun.js/bindings/webcore/WebSocket.cpp
+++ b/src/bun.js/bindings/webcore/WebSocket.cpp
@@ -69,8 +69,6 @@
#include <wtf/text/CString.h>
#include <wtf/text/StringBuilder.h>
-#include <uws/src/App.h>
-
// #if USE(WEB_THREAD)
// #include "WebCoreThreadRun.h"
// #endif
@@ -182,14 +180,14 @@ WebSocket::~WebSocket()
Bun__WebSocketClientTLS__finalize(this->m_connectedWebSocket.clientSSL);
break;
}
- case ConnectedWebSocketKind::Server: {
- this->m_connectedWebSocket.server->end(None);
- break;
- }
- case ConnectedWebSocketKind::ServerSSL: {
- this->m_connectedWebSocket.serverSSL->end(None);
- break;
- }
+ // case ConnectedWebSocketKind::Server: {
+ // this->m_connectedWebSocket.server->end(None);
+ // break;
+ // }
+ // case ConnectedWebSocketKind::ServerSSL: {
+ // this->m_connectedWebSocket.serverSSL->end(None);
+ // break;
+ // }
default: {
break;
}
@@ -484,7 +482,6 @@ ExceptionOr<void> WebSocket::send(ArrayBufferView& arrayBufferView)
void WebSocket::sendWebSocketData(const char* baseAddress, size_t length)
{
- uWS::OpCode opCode = uWS::OpCode::BINARY;
switch (m_connectedWebSocketKind) {
case ConnectedWebSocketKind::Client: {
@@ -497,16 +494,16 @@ void WebSocket::sendWebSocketData(const char* baseAddress, size_t length)
Bun__WebSocketClientTLS__writeBinaryData(this->m_connectedWebSocket.clientSSL, reinterpret_cast<const unsigned char*>(baseAddress), length);
break;
}
- case ConnectedWebSocketKind::Server: {
- this->m_connectedWebSocket.server->send({ baseAddress, length }, opCode);
- this->m_bufferedAmount = this->m_connectedWebSocket.server->getBufferedAmount();
- break;
- }
- case ConnectedWebSocketKind::ServerSSL: {
- this->m_connectedWebSocket.serverSSL->send({ baseAddress, length }, opCode);
- this->m_bufferedAmount = this->m_connectedWebSocket.serverSSL->getBufferedAmount();
- break;
- }
+ // case ConnectedWebSocketKind::Server: {
+ // this->m_connectedWebSocket.server->send({ baseAddress, length }, opCode);
+ // this->m_bufferedAmount = this->m_connectedWebSocket.server->getBufferedAmount();
+ // break;
+ // }
+ // case ConnectedWebSocketKind::ServerSSL: {
+ // this->m_connectedWebSocket.serverSSL->send({ baseAddress, length }, opCode);
+ // this->m_bufferedAmount = this->m_connectedWebSocket.serverSSL->getBufferedAmount();
+ // break;
+ // }
default: {
RELEASE_ASSERT_NOT_REACHED();
}
@@ -529,18 +526,18 @@ void WebSocket::sendWebSocketString(const String& message)
Bun__WebSocketClientTLS__writeString(this->m_connectedWebSocket.clientSSL, &zigStr);
break;
}
- case ConnectedWebSocketKind::Server: {
- auto utf8 = message.utf8(StrictConversionReplacingUnpairedSurrogatesWithFFFD);
- this->m_connectedWebSocket.server->send({ utf8.data(), utf8.length() }, uWS::OpCode::TEXT);
- this->m_bufferedAmount = this->m_connectedWebSocket.server->getBufferedAmount();
- break;
- }
- case ConnectedWebSocketKind::ServerSSL: {
- auto utf8 = message.utf8(StrictConversionReplacingUnpairedSurrogatesWithFFFD);
- this->m_connectedWebSocket.serverSSL->send({ utf8.data(), utf8.length() }, uWS::OpCode::TEXT);
- this->m_bufferedAmount = this->m_connectedWebSocket.serverSSL->getBufferedAmount();
- break;
- }
+ // case ConnectedWebSocketKind::Server: {
+ // auto utf8 = message.utf8(StrictConversionReplacingUnpairedSurrogatesWithFFFD);
+ // this->m_connectedWebSocket.server->send({ utf8.data(), utf8.length() }, uWS::OpCode::TEXT);
+ // this->m_bufferedAmount = this->m_connectedWebSocket.server->getBufferedAmount();
+ // break;
+ // }
+ // case ConnectedWebSocketKind::ServerSSL: {
+ // auto utf8 = message.utf8(StrictConversionReplacingUnpairedSurrogatesWithFFFD);
+ // this->m_connectedWebSocket.serverSSL->send({ utf8.data(), utf8.length() }, uWS::OpCode::TEXT);
+ // this->m_bufferedAmount = this->m_connectedWebSocket.serverSSL->getBufferedAmount();
+ // break;
+ // }
default: {
RELEASE_ASSERT_NOT_REACHED();
}
@@ -592,16 +589,16 @@ ExceptionOr<void> WebSocket::close(std::optional<unsigned short> optionalCode, c
// this->m_bufferedAmount = this->m_connectedWebSocket.clientSSL->getBufferedAmount();
break;
}
- case ConnectedWebSocketKind::Server: {
- // this->m_connectedWebSocket.server->end(code, { utf8.data(), utf8.length() });
- // this->m_bufferedAmount = this->m_connectedWebSocket.server->getBufferedAmount();
- break;
- }
- case ConnectedWebSocketKind::ServerSSL: {
- // this->m_connectedWebSocket.serverSSL->end(code, { utf8.data(), utf8.length() });
- // this->m_bufferedAmount = this->m_connectedWebSocket.serverSSL->getBufferedAmount();
- break;
- }
+ // case ConnectedWebSocketKind::Server: {
+ // this->m_connectedWebSocket.server->end(code, { utf8.data(), utf8.length() });
+ // this->m_bufferedAmount = this->m_connectedWebSocket.server->getBufferedAmount();
+ // break;
+ // }
+ // case ConnectedWebSocketKind::ServerSSL: {
+ // // this->m_connectedWebSocket.serverSSL->end(code, { utf8.data(), utf8.length() });
+ // // this->m_bufferedAmount = this->m_connectedWebSocket.serverSSL->getBufferedAmount();
+ // break;
+ // }
default: {
break;
}
diff --git a/src/bun.js/bindings/webcore/WebSocket.h b/src/bun.js/bindings/webcore/WebSocket.h
index 2043d58b9..796268d7a 100644
--- a/src/bun.js/bindings/webcore/WebSocket.h
+++ b/src/bun.js/bindings/webcore/WebSocket.h
@@ -112,15 +112,11 @@ private:
typedef union AnyWebSocket {
WebSocketClient* client;
WebSocketClientTLS* clientSSL;
- uWS::WebSocket<false, true, WebCore::WebSocket*>* server;
- uWS::WebSocket<true, true, WebCore::WebSocket*>* serverSSL;
} AnyWebSocket;
enum ConnectedWebSocketKind {
None,
Client,
ClientSSL,
- Server,
- ServerSSL
};
explicit WebSocket(ScriptExecutionContext&);