|
@@ -123,6 +123,7 @@ func (h *Hub) Subscribe(channel *regexp.Regexp, cmd string, backFunc SubscribeBa
|
|
|
}
|
|
|
|
|
|
// 遍历频道列表
|
|
|
+// 如果 fn 返回 false,则 range 停止迭代
|
|
|
func (h *Hub) ConnectRange(fn func(line *Line) bool) {
|
|
|
h.connects.Range(func(key, _ any) bool {
|
|
|
line := key.(*Line)
|
|
@@ -345,7 +346,7 @@ func (h *Hub) requestFromNet(request *RequestData) {
|
|
|
// 当前调用将会阻塞,直到命令都执行结束,最后返回执行的数量
|
|
|
// 如果 backFunc 返回为 false 则提前结束
|
|
|
// 最大数量和超时时间如果为0的话表示使用默认值
|
|
|
-func (h *Hub) GetX(channel *regexp.Regexp, cmd string, data []byte, backFunc GetBack, max int, timeout int) (count int) {
|
|
|
+func (h *Hub) GetWithMaxAndTimeout(channel *regexp.Regexp, cmd string, data []byte, backFunc GetBack, max int, timeout int) (count int) {
|
|
|
// 排除空频道
|
|
|
if channel == nil {
|
|
|
return 0
|
|
@@ -406,13 +407,13 @@ func (h *Hub) GetX(channel *regexp.Regexp, cmd string, data []byte, backFunc Get
|
|
|
// 当前调用将会阻塞,直到命令都执行结束,最后返回执行的数量
|
|
|
// 如果 backFunc 返回为 false 则提前结束
|
|
|
func (h *Hub) Get(channel *regexp.Regexp, cmd string, data []byte, backFunc GetBack) (count int) {
|
|
|
- return h.GetX(channel, cmd, data, backFunc, 0, 0)
|
|
|
+ return h.GetWithMaxAndTimeout(channel, cmd, data, backFunc, 0, 0)
|
|
|
}
|
|
|
|
|
|
// 只获取一个频道的数据,阻塞等待到默认超时间隔
|
|
|
// 如果没有结果将返回 NO_MATCH
|
|
|
func (h *Hub) GetOne(channel *regexp.Regexp, cmd string, data []byte) (response *ResponseData) {
|
|
|
- h.GetX(channel, cmd, data, func(rp *ResponseData) (ok bool) {
|
|
|
+ h.GetWithMaxAndTimeout(channel, cmd, data, func(rp *ResponseData) (ok bool) {
|
|
|
response = rp
|
|
|
return false
|
|
|
}, 1, 0)
|
|
@@ -427,8 +428,8 @@ func (h *Hub) GetOne(channel *regexp.Regexp, cmd string, data []byte) (response
|
|
|
|
|
|
// 只获取一个频道的数据,阻塞等待到指定超时间隔
|
|
|
// 如果没有结果将返回 NO_MATCH
|
|
|
-func (h *Hub) GetOneX(channel *regexp.Regexp, cmd string, data []byte, timeout int) (response *ResponseData) {
|
|
|
- h.GetX(channel, cmd, data, func(rp *ResponseData) (ok bool) {
|
|
|
+func (h *Hub) GetOneWithTimeout(channel *regexp.Regexp, cmd string, data []byte, timeout int) (response *ResponseData) {
|
|
|
+ h.GetWithMaxAndTimeout(channel, cmd, data, func(rp *ResponseData) (ok bool) {
|
|
|
response = rp
|
|
|
return false
|
|
|
}, 1, timeout)
|
|
@@ -458,7 +459,7 @@ func (h *Hub) Push(channel *regexp.Regexp, cmd string, data []byte) {
|
|
|
}
|
|
|
|
|
|
// 推送最大对应数量的消息出去,不需要返回数据
|
|
|
-func (h *Hub) PushX(channel *regexp.Regexp, cmd string, data []byte, max int) {
|
|
|
+func (h *Hub) PushWithMax(channel *regexp.Regexp, cmd string, data []byte, max int) {
|
|
|
// 排除空频道
|
|
|
if channel == nil {
|
|
|
return
|