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 关注
- 168 浏览
添加回答
举报