我参考srs服务器https://github.com/ossrs/srs,写了一个go版本的rtmp服务器https://github.com/calabashdad/seal
readme中写了一部分说明,这里补充下:
- 由于srs要考虑到库的实现,因此它的一些处理对于服务器本身来说, 是没有必要附加到里面的,比如on_recv_msg之后,有些是客户端发出的命令,如果不考虑forward这种边缘服务器,这块可以省略,这样,在服务器完成握手之后,就变成了这样一个简单的循环:
for {
recv_msg()
on_recv_msg()
}
是的,你没有看错,无论代码看着多么复杂,精简之后的结构,就是这样的,go版的seal服务器,就是一个这样的结构
- continued...