跳轉到主要內容

Remote Sessions

啟用 Remote Sessions 後,可透過 GitHub 的 Mission Control 從網頁或行動裝置存取相同 Session。 啟用後 Session 會連線到 Mission Control,並發行可以透過連結或 QR Code 分享的 URL。 若希望 Session 本身在 GitHub 主機環境上執行,而非在本機或自建伺服器,請使用 Cloud Sessions。

前置條件

  • 使用者已通過驗證(GitHub Token 或已登入的使用者)
  • workingDirectory 是 GitHub 儲存庫

已移除的設定選項

官方 SDK 1.0.26 移除了 Client 的 remote 選項、Session 的 remoteSession 選項,以及 CLI 啟動參數 --remote。若要共享 Session,請使用 $session->rpc()->remote()->enable() 隨選啟用。現有的遠端 Session RPC 仍可繼續使用。

在每個 Session 啟用(隨選)

若想共享 Session,可透過 RPC 切換遠端存取。 這等同於 CLI 的 /remote on 與 /remote off 指令。

連線到現有的遠端 Session(伺服器範圍)

若要讓 CLI 伺服器連線到現有的遠端 Session,請呼叫 $client->rpc()->sessions()->connect()。在 ConnectRemoteSessionParams 中傳入遠端 sessionId。回傳結果包含 SDK 端的 sessionId 以及遠端 Session 的中繼資料。

執行階段層級的 Remote Control(TCP 模式)

RemoteControlConfig 的 remote 屬性用於設定執行階段層級的 Remote Control。它與已移除的 Client remote 啟動選項無關。 在 TCP 模式下,可以透過 $client->rpc()->sessions() 管理整個執行階段唯一的 Remote Control。與每個 Session 的 remote()->enable() 不同,這些方法可以啟動、停止 Remote Control,在 Session 之間移轉,並取得目前狀態。
狀態為 off、connecting、active 或 error 其中之一。處於 active 時,也可以讀取 frontendUrl 與 isSteerable。
若要通知執行階段某個 Session 的遠端操控能力已變更,請使用 Session 層級的 RPC。

產生 QR Code

取得的遠端 URL 可以做成 QR Code 傳給行動裝置。 可以使用 Laravel Fortify 也採用的 BaconQrCode。

注意事項

  • 若 workingDirectory 不是 GitHub 儲存庫,remote()->enable() 可能會產生錯誤。
  • 請正確設定認證資訊(github_token 或 use_logged_in_user)。

參考

最新資訊請參閱 GitHub 儲存庫。
最後修改於 2026年10月26日