feat(provider/localtunnel): deferred local dialing and custom subdomain support

オープン
#80 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

メンテナーはふだん 1 日以内に返信

まだ誰も着手していません。

評価

難易度
3/5
見積もり時間
1〜2日
初心者へのやさしさ
55/100
issue の種類
機能追加
明瞭さ
おおむね明確
活発さ
活発
技術スタック
go
領域
networking

調査の方向性

Start in internal/provider/localtunnel.go, reading proxyRequest to see where the 10 pooled connections dial 127.0.0.1:localPort at startup, then requestTunnel and NewLocalTunnel for the GET /?new request. Use the selfhosted provider's lazy-dial code as the reference for deferring the dial until visitor bytes arrive. Done means local dials happen only after the first read, and a requested subdomain is sent as GET /:subdomain when -d is set.

索引モデルが issue の本文から書いたものです。

説明

enhancement
Summary

Bring parity to the localtunnel provider based on recent selfhosted improvements:

  1. Deferred Local Dialing (Lazy Dial):

    • In internal/provider/localtunnel.go, proxyRequest currently dials 127.0.0.1:localPort immediately across all 10 pooled connections on startup.
    • Wait for incoming visitor bytes on tunnelConn.Read(buf) before dialing the local server, then write buf[:n] before streaming with io.Copy.
    • Prevents 10 idle connections to localhost and stops the 500ms reconnect spin loop when the local server is offline.
  2. Custom Subdomain (-d / --subdomain) Support:

    • LocalTunnel server protocol supports requesting custom subdomains via GET /:subdomain instead of GET /?new.
    • Update NewLocalTunnel and requestTunnel to pass and use the requested subdomain if provided.
主要言語
Go
スター
9
フォーク
1
平均マージ
5時間 33分
マージ済み PR(30日)
36

環境構築

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

kernelshard/expose のほかの issue

kernelshard/expose の issue をすべて見る

似ている issue

Go の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。