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。
產生 QR Code
取得的遠端 URL 可以做成 QR Code 傳給行動裝置。 可以使用 Laravel Fortify 也採用的 BaconQrCode。注意事項
- 若
workingDirectory不是 GitHub 儲存庫,remote()->enable()可能會產生錯誤。 - 請正確設定認證資訊(
github_token或use_logged_in_user)。
參考
最新資訊請參閱 GitHub 儲存庫。