ホームページ  >  記事  >  バックエンド開発  >  サーバーがリッスンを開始した後にブラウザを起動するにはどうすればよいですか?

サーバーがリッスンを開始した後にブラウザを起動するにはどうすればよいですか?

王林
王林転載
2024-02-08 22:03:32824ブラウズ

サーバーがリッスンを開始した後にブラウザを起動するにはどうすればよいですか?

php editor Strawberry では、サーバーがリッスンを開始した後にブラウザを起動する方法を紹介します。サーバーを起動し、指定されたポートをリッスンした後、ブラウザを自動的に起動するコードを作成できます。具体的な実装方法は 2 つあり、1 つはシステム コマンドを呼び出してデフォルトのブラウザを開く方法、もう 1 つはブラウザのリモート デバッグ プロトコルを使用する方法です。どの方法を使用する場合でも、ブラウザを自動的に開く機能を実現するには、コード内で対応する設定と呼び出しを行う必要があります。

質問内容

goでは、サーバーがリッスンを開始した後にブラウザを起動するにはどうすればよいですか?

最良の方法は最も単純な方法です。

これまでの私のコードは非常に単純です:

package main

import (  
    // Standard library packages
    "fmt"
    "net/http"
    "github.com/skratchdot/open-golang/open"
    // Third party packages
    "github.com/julienschmidt/httprouter"
)


// go get github.com/toqueteos/webbrowser

func main() {  
    // Instantiate a new router
    r := httprouter.New()

    // Add a handler on /test
    r.GET("/test", func(w http.ResponseWriter, r *http.Request, _ httprouter.Params) {
        // Simply write some test data for now
        fmt.Fprint(w, "Welcome!\n")
    })
    
    //open.Run("https://google.com/")
     
    // open.Start("https://google.com")

    // http://127.0.0.1:3000/test
    // Fire up the server
    http.ListenAndServe("localhost:3000", r)
    fmt.Println("ListenAndServe is blocking")  
    open.RunWith("http://localhost:3000/test", "firefox")  
    fmt.Println("Done")
}

解決策

リスナーを開き、ブラウザを起動して、サーバー ループに入ります:

リーリー

別の回答に示されているように、ポーリングする必要はありません。ブラウザが起動する前にリスニングソケットが開いている場合、ブラウザは接続します。

listenandserve は、ソケットを開いてserveを呼び出す便利な関数です。この回答のコードはこれらのステップを分割して、リスニングが開始された後、サービングの呼び出しがブロックされる前にブラウザーを開くことができるようにします。

以上がサーバーがリッスンを開始した後にブラウザを起動するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はstackoverflow.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。