|
@@ -8,6 +8,7 @@ import (
|
|
|
"log"
|
|
"log"
|
|
|
"math/rand"
|
|
"math/rand"
|
|
|
"net"
|
|
"net"
|
|
|
|
|
+ "slices"
|
|
|
|
|
|
|
|
// "regexp"
|
|
// "regexp"
|
|
|
"strconv"
|
|
"strconv"
|
|
@@ -386,8 +387,7 @@ func (h *Hub) requestFromNet(request *RequestData) {
|
|
|
if ok {
|
|
if ok {
|
|
|
subs := sub.([]*SubscribeData)
|
|
subs := sub.([]*SubscribeData)
|
|
|
// 倒序查找是为了新增的频道响应函数优先执行
|
|
// 倒序查找是为了新增的频道响应函数优先执行
|
|
|
- for i := len(subs) - 1; i >= 0; i-- {
|
|
|
|
|
- rg := subs[i]
|
|
|
|
|
|
|
+ for _, rg := range slices.Backward(subs) {
|
|
|
if rg.Filter(request.conn) {
|
|
if rg.Filter(request.conn) {
|
|
|
// 加入filter是为了能更好看到是哪个过滤器匹配的
|
|
// 加入filter是为了能更好看到是哪个过滤器匹配的
|
|
|
request.Filter = rg.Filter
|
|
request.Filter = rg.Filter
|