httpサーバをリモートで停止したいのですが、停止した後に停止したことを示すメッセージが表示されます。それは私にいくつかの問題を引き起こしています。私が見つけることができる唯一の解決策は、私が理想とは考えていない以下のようなものです。 誰かがより良い解決策を提供することができます。問題は、「go func(){」のようにゴルーチンを使用しない限り、クライアントに送信される最終メッセージが通過しないことです。次のようにリモートでhttpサーバを停止したい
コードは次のとおりです。
//*************
func stopServer(ohtWriter http.ResponseWriter, phtRequest *http.Request) {// Stop The Server
//*************
var iBytesSent int
var oOsError os.Error
var sErmes string
println("Stopping Server")
iBytesSent,oOsError = ohtWriter.Write([]byte("Message from server - server now stopped."))
if oOsError != nil {
sErmes = ". Error = " +oOsError.String()
} else {
sErmes = ". No error on write"
}
println("stopServer: Bytes sent = " +strconv.Itoa(iBytesSent) +sErmes)
ohtFlusher, tCanFlush := ohtWriter.(http.Flusher)
if tCanFlush {
ohtFlusher.Flush()
}
go func() {
time.Sleep(3e9)
os.Exit(0)
}()
}
に感謝します。私はhttpパッケージに何かが必要であることに同意しますが、今は私を少し超えています。 – brianoh