Skip to main content

Modalità TCP

Di norma l’SDK avvia un nuovo processo Copilot CLI per ogni richiesta (modalità stdio). Con la modalità TCP puoi connetterti a un server Copilot CLI avviato in anticipo.

Vantaggi della modalità TCP

  • Miglioramento delle performance: nessun overhead di avvio processo
  • Condivisione delle risorse: più processi Laravel possono condividere lo stesso server CLI
  • Gestione del processo: gestibile come processo in background con Laravel Forge / Laravel Cloud
  • Adatto al deploy: supporta il riavvio automatico durante il deploy

Uso

1. Avvia il server Copilot CLI

2. Imposta la variabile d’ambiente

Con questo, l’SDK passa automaticamente da stdio a TCP.
  • tcp:// è opzionale. Funziona anche con http:// o senza schema.
  • Puoi specificare solo la porta. In tal caso l’host è automaticamente 127.0.0.1.
  • La specifica del solo host è valida solo per 127.0.0.1 e localhost. In tal caso la porta di default è 12345.

File di configurazione

Puoi configurare la connessione TCP in config/copilot.php.
Se imposti sia COPILOT_URL (cli_url) sia COPILOT_CLI_PATH, ha priorità la modalità TCP.

Cambio di modalità a runtime

Di norma la modalità TCP o stdio viene scelta automaticamente in base al file di configurazione. Puoi anche cambiarla esplicitamente nel codice.
Con alcuni server la modalità TCP potrebbe non funzionare correttamente. È anche possibile alternare: modalità TCP per le queue, modalità stdio all’interno delle richieste HTTP.

Uso con Laravel Forge / Laravel Cloud

Laravel Forge

  1. Crea un Daemon: crea un Daemon dalla dashboard Forge.
  2. Imposta la variabile d’ambiente: aggiungi COPILOT_URL in .env.
  3. Riavvio al deploy: riavvia il Daemon nello script di deploy.
Con l’attuale ambiente Forge potrebbe non essere necessario.

Laravel Cloud

Puoi eseguirlo come processo in background usando la funzionalità worker di Laravel Cloud. Per i dettagli consulta Uso su Laravel Cloud.

Note

Sicurezza

Usa per quanto possibile il bind locale (127.0.0.1) per il server TCP. Se lo esponi pubblicamente, configura in modo appropriato il firewall.

Riconnessione

La versione attuale non ha una riconnessione automatica. Se la connessione cade viene sollevata un’eccezione.

Verifica della modalità corrente

Nel codice puoi verificare in che modalità è il client.

Troubleshooting

Connessione fallita

  1. Verifica che il server Copilot CLI sia in esecuzione
  1. Verifica che la porta sia corretta
  1. Verifica la configurazione del firewall

Errore di timeout

Aumenta il valore di timeout in config/copilot.php.
Per le informazioni più recenti fai riferimento al repository GitHub.
Ultima modifica il 13 luglio 2026