From 33ceae4ce5c9f95bde52d5453a6c41488fa36846 Mon Sep 17 00:00:00 2001 From: Luca Casonato Date: Thu, 17 Oct 2024 17:19:43 +0200 Subject: fix(runtime): send ws ping frames from inspector server (#26352) Every 30 seconds the websocket server will now send a ping frame, so that the TCP socket stays alive. --- runtime/inspector_server.rs | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'runtime/inspector_server.rs') diff --git a/runtime/inspector_server.rs b/runtime/inspector_server.rs index 1f8cd5e71..33b2ab872 100644 --- a/runtime/inspector_server.rs +++ b/runtime/inspector_server.rs @@ -23,6 +23,7 @@ use deno_core::InspectorSessionProxy; use deno_core::JsRuntime; use fastwebsockets::Frame; use fastwebsockets::OpCode; +use fastwebsockets::Payload; use fastwebsockets::WebSocket; use hyper::body::Bytes; use hyper_util::rt::TokioIo; @@ -33,6 +34,7 @@ use std::pin::pin; use std::process; use std::rc::Rc; use std::thread; +use std::time::Duration; use tokio::net::TcpListener; use tokio::sync::broadcast; use uuid::Uuid; @@ -393,8 +395,13 @@ async fn pump_websocket_messages( inbound_tx: UnboundedSender, mut outbound_rx: UnboundedReceiver, ) { + let mut ticker = tokio::time::interval(Duration::from_secs(30)); + 'pump: loop { tokio::select! { + _ = ticker.tick() => { + let _ = websocket.write_frame(Frame::new(true, OpCode::Ping, None, Payload::Borrowed(&[]))).await; + } Some(msg) = outbound_rx.next() => { let msg = Frame::text(msg.content.into_bytes().into()); let _ = websocket.write_frame(msg).await; -- cgit v1.2.3 From b063cfecfe0479b1de14b8e9e06f1921ce830127 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bartek=20Iwa=C5=84czuk?= Date: Thu, 24 Oct 2024 18:43:24 +0100 Subject: =?UTF-8?q?Revert=20"fix(runtime):=20send=20ws=20ping=20frames=20f?= =?UTF-8?q?rom=20inspector=20server=20(#263=E2=80=A6=20(#26513)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- runtime/inspector_server.rs | 7 ------- 1 file changed, 7 deletions(-) (limited to 'runtime/inspector_server.rs') diff --git a/runtime/inspector_server.rs b/runtime/inspector_server.rs index 33b2ab872..1f8cd5e71 100644 --- a/runtime/inspector_server.rs +++ b/runtime/inspector_server.rs @@ -23,7 +23,6 @@ use deno_core::InspectorSessionProxy; use deno_core::JsRuntime; use fastwebsockets::Frame; use fastwebsockets::OpCode; -use fastwebsockets::Payload; use fastwebsockets::WebSocket; use hyper::body::Bytes; use hyper_util::rt::TokioIo; @@ -34,7 +33,6 @@ use std::pin::pin; use std::process; use std::rc::Rc; use std::thread; -use std::time::Duration; use tokio::net::TcpListener; use tokio::sync::broadcast; use uuid::Uuid; @@ -395,13 +393,8 @@ async fn pump_websocket_messages( inbound_tx: UnboundedSender, mut outbound_rx: UnboundedReceiver, ) { - let mut ticker = tokio::time::interval(Duration::from_secs(30)); - 'pump: loop { tokio::select! { - _ = ticker.tick() => { - let _ = websocket.write_frame(Frame::new(true, OpCode::Ping, None, Payload::Borrowed(&[]))).await; - } Some(msg) = outbound_rx.next() => { let msg = Frame::text(msg.content.into_bytes().into()); let _ = websocket.write_frame(msg).await; -- cgit v1.2.3 From 8bfd134da6d730cc1d182ab430b1713901d7a5b5 Mon Sep 17 00:00:00 2001 From: Divy Srivastava Date: Thu, 31 Oct 2024 10:10:07 +0530 Subject: fix: clamp smi in fast calls by default (#26506) Fixes https://github.com/denoland/deno/issues/26480 Ref https://github.com/denoland/deno_core/commit/d2945fb65bca56ebfa7bb80556a4c8f4330d2315 --- runtime/inspector_server.rs | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'runtime/inspector_server.rs') diff --git a/runtime/inspector_server.rs b/runtime/inspector_server.rs index 1f8cd5e71..a789dd3dc 100644 --- a/runtime/inspector_server.rs +++ b/runtime/inspector_server.rs @@ -19,6 +19,8 @@ use deno_core::serde_json::Value; use deno_core::unsync::spawn; use deno_core::url::Url; use deno_core::InspectorMsg; +use deno_core::InspectorSessionKind; +use deno_core::InspectorSessionOptions; use deno_core::InspectorSessionProxy; use deno_core::JsRuntime; use fastwebsockets::Frame; @@ -192,6 +194,11 @@ fn handle_ws_request( let inspector_session_proxy = InspectorSessionProxy { tx: outbound_tx, rx: inbound_rx, + options: InspectorSessionOptions { + kind: InspectorSessionKind::NonBlocking { + wait_for_disconnect: true, + }, + }, }; log::info!("Debugger session started."); -- cgit v1.2.3