2 回答

TA貢獻1797條經驗 獲得超6個贊
使用結構類型來保存通道。在類型上實現http.Handler接口:
type RestHandler struct {
ch chan string
}
func (h *RestHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
// insert body of the handleRestRequest here.
// Use h.ch <- someString to send string to connection
}
在您的主要功能中,為 TCP 發送方創建一個通道并在 goroutine 中啟動發送方:
ch := make(chan string)
go tcpSender(ch)
使用通道創建 *RestHandler 的值并將其注冊為處理程序:
http.Handle("/rcvtelegram", &RestHandler{ch:ch})

TA貢獻1815條經驗 獲得超13個贊
基于上述建議,我以這種方式構建它:
type TcpHandler struct {
connection net.Conn
}
然后定義了一個自定義的 HTTP 處理程序:
func (t TcpHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {...}
然后將其注冊到現有的 TCP 連接中main():
httpTcpHandler := TcpHandler{connection: conn}
mux := http.NewServeMux()
mux.Handle("/rcvtelegram", httpTcpHandler)
go startHttpServer(httpPort, mux)
正常工作!
- 2 回答
- 0 關注
- 159 瀏覽
添加回答
舉報