package
0.37.4
Repository: https://github.com/q191201771/lal.git
Documentation: pkg.go.dev

# Functions

NewLalServer 创建一个lal server @param modOption: 定制化配置。可变参数,如果不关心,可以不填,具体字段见 Option.

# Variables

CheckSessionAliveIntervalSec 检查session是否有数据传输的时间间隔,该间隔内没有数据传输的session将被关闭。 对于输入型session,检查一定时间内,是否没有收到数据。 对于输出型session,检查一定时间内,是否没有发送数据。 注意,socket阻塞无法发送和上层没有向该session喂入数据都算没有发送数据。 .
DefaultConfFilenameList 没有指定配置文件时,按顺序作为优先级,找到第一个存在的并使用.

# Structs

ComplexGroupManager 注意,这个模块的功能不完全,目前只使用SimpleGroupManager TODO(chef): - 现有逻辑重构至当前模块中【DONE】 - server_manger接入当前模块,替换掉原来的map【DONE】 - 重构整理使用server_manager的地方【DONE】 - 实现appName逻辑的IGroupManager【DONE】 - 增加单元测试【DONE】 - 配置文件或var.go中增加选取具体IGroupManager实现的开关 - 去除配置文件中一部分的url_pattern - 更新相应的文档:本文件注释,server_manager等中原有关于appName的注释,配置文件文档,流地址列表文档 - 创建group时没有appname,后面又有了,可以考虑更新一下 - ComplexGroupManager使用IGroupCreator --------------------------------------------------------------------------------------------------------------------- 背景: - 有的协议需要结合appName和streamName作为流唯一标识(比如rtmp,httpflv,httpts)。 - 有的协议不需要appName,只使用streamName作为流唯一标识(比如rtsp?)。 目标: - 有appName的协议,需要参考appName。 - 没appName的协议,需要和有appName的协议互通。 注意: - 当以上两种类型的协议混用时,系统使用者应避免第二种协议的streamName,在第一种协议中存在相同的streamName,但是appName不止一个,这种情况下,内部无法知道该如何对应。 - group可能由第一种协议创建,也可能由第二种协议创建。.
SimpleGroupManager 忽略appName,只使用streamName.

# Interfaces

ICustomizeHookSessionContext 业务方实现该接口,从而hook所有输入到lalserver中的流以及流中的数据。.
IGroupManager 封装管理Group的容器 管理流标识(appName,streamName)与Group的映射关系。比如appName是否参与映射匹配.
INotifyHandler 事件通知接口.

# Type aliases