plugin-gb28181
plugin-gb28181 copied to clipboard
Invite请求中SipRequestForResponse报错之后,使用的端口没有回收
https://github.com/Monibuca/plugin-gb28181/blob/a207352fe6e4a2fc67780ce71ac48f56f9e17b3f/channel.go#L425
在发送Invite请求之前需要从PortManager中拿一个端口,但是发送Invite请求不成功时,不能走Bye中的recycle逻辑。久而久之PortManager.Range()会越来越少直至耗尽
inviteRes, err := d.SipRequestForResponse(invite)
if err != nil {
channel.Error("invite", zap.Error(err), zap.String("msg", invite.String()))
return http.StatusInternalServerError, err
}
另外还发现一个问题是SipRequestForResponse会阻塞很久,或者会报超时错误。估计是gosip库的问题
嗯,你看看有没有办法回收端口,帮忙提个 PR
https://github.com/Monibuca/plugin-gb28181/blob/a207352fe6e4a2fc67780ce71ac48f56f9e17b3f/channel.go#L425
在发送Invite请求之前需要从
PortManager中拿一个端口,但是发送Invite请求不成功时,不能走Bye中的recycle逻辑。久而久之PortManager.Range()会越来越少直至耗尽inviteRes, err := d.SipRequestForResponse(invite) if err != nil { channel.Error("invite", zap.Error(err), zap.String("msg", invite.String())) return http.StatusInternalServerError, err }
请问解决了吗
解决了