1 Star 0 Fork 0

余济舟/aid

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
option.go 1.50 KB
一键复制 编辑 原始数据 按行查看 历史
Jericho Yu 提交于 2025-03-04 15:55 +08:00 . [optimize]补充新New和Once方法和go:fix
package websocketPool
import "time"
type (
// Heart 链接心跳
Heart struct {
ticker *time.Ticker
fn func(*Client)
}
// MessageTimeout 通信超时
MessageTimeout struct{ interval time.Duration }
)
var HeartApp Heart
func (*Heart) New() *Heart { return &Heart{} }
// NewHeart 实例化:链接心跳
//
//go:fix 推荐使用:New方法
func NewHeart() *Heart { return &Heart{} }
// SetInterval 设置定时器
func (my *Heart) SetInterval(interval time.Duration) *Heart {
if my.ticker != nil {
my.ticker.Reset(interval)
} else {
my.ticker = time.NewTicker(interval)
}
return my
}
// SetFn 设置回调:定时器执行内容
func (my *Heart) SetFn(fn func(client *Client)) *Heart {
my.fn = fn
return my
}
// Stop 停止定时器
func (my *Heart) Stop() *Heart {
my.ticker.Stop()
return my
}
// DefaultHeart 默认心跳:10秒
func DefaultHeart() *Heart {
// return NewHeart().SetInterval(time.Second * 10).SetFn(func(client *Client) {
// _, _ = client.SendMsg(MsgType.Ping(), []byte("ping"))
// })
return NewHeart().SetInterval(60 * time.Second).SetFn(nil)
}
// NewMessageTimeout 实例化:链接超时
func NewMessageTimeout() *MessageTimeout { return &MessageTimeout{} }
// SetInterval 设置定时器时间
func (r *MessageTimeout) SetInterval(interval time.Duration) *MessageTimeout {
r.interval = interval
return r
}
// DefaultMessageTimeout 默认消息超时:5秒
func DefaultMessageTimeout() *MessageTimeout { return NewMessageTimeout().SetInterval(time.Second * 5) }
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/jericho-yu/aid.git
git@gitee.com:jericho-yu/aid.git
jericho-yu
aid
aid
v1.36.4

搜索帮助