【发布时间】:2016-10-31 03:04:48
【问题描述】:
我正在尝试在 Go 中将 RTMP 协议与我的 Web 应用程序一起实现,但是我似乎无法找到在同一端口上同时处理 HTTP 和 RTMP 的解决方案。
这个想法是这样的。
package main
import (
"fmt"
"io"
"net/http"
)
func main() {
http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
io.WriteString(w, "Hello!")
})
http.HandleFunc("/rtmp", func(w http.ResponseWriter, r *http.Request) {
// RTMP handling here
})
fmt.Println("Starting web server")
http.ListenAndServe(":8000", nil)
}
zhangpeihao/gortmp 有一个很棒的 RMTP 模块,an example that shows 通过侦听 TCP 套接字来处理 RTMP。但是如何在特定端点而不是第二个端口上处理它?
【问题讨论】:
-
我猜你需要隧道RTMP over HTTP
-
除了其他协议中的隧道协议外,每个端口服务多个协议是不寻常的。我想某些解决方案将涉及查看收到的前几个字节,直到您可以决定使用哪个处理程序。我从未见过这种尝试。