目的
所有消息由udp server 接收,http协议进行获取,如智能面板中的udpserver 接收所有消息以后, 其他客户端可以获取所有流量 udp server 记录所有的数据结构和流量,能力,定义角色如下:对应服务类型和编号 sip server :1 media server :2 media server edge :3 ai server 推理服务器 :4 event server :5 nvr :6 ipc :7
分别启动udp 服务器 和http服务器
code 框架package main
import (
"io"
"fmt"
"net"
"net/http"
"os"
"log"
"container/list"
)
type s_client struct{
*net.UDPAddr
num int
name string
}
var g_client = list.New()
//var g_clients map[uint]list //uint 是ssrc,list是请求的链表
var limitChan = make(chan bool, 1000)
// hello world, the web server
func HelloServer(w http.ResponseWriter, req *http.Request) {
//返回服务器的端口地址,可以有多个服务器来进行负载均衡
io.WriteString(w, "127.0.0.1:8080")
}
// UDP goroutine concurrency to read UDP maybe not parallelism,maybe in onethread maybe in multi thread,maybe yes,maybe no
func udpProcess(conn *net.UDPConn) {
data := make([]byte, 1460)
n,remoteAddr,err := conn.ReadFromUDP(data)
if err != nil {
fmt.Println("Failed To Read UDP Msg, Error: " + err.Error())
}
if(data[0] == 0x80){//RTP 协议
if n
关注
打赏