Ver Fonte

add filter to request

Joyit há 2 semanas atrás
pai
commit
11fc068b30
3 ficheiros alterados com 7 adições e 0 exclusões
  1. 4 0
      README.md
  2. 2 0
      hub.go
  3. 1 0
      type.go

+ 4 - 0
README.md

@@ -12,6 +12,10 @@
 - 连接聚合层,管理不同的连接,重连等
 - 连接聚合层,管理不同的连接,重连等
 - 用户接口
 - 用户接口
 
 
+## 如何调试
+
+进入 examples 目录,运行对应的文件进行调试
+
 ## 需要的功能
 ## 需要的功能
 
 
 - 同地址多连接协议
 - 同地址多连接协议

+ 2 - 0
hub.go

@@ -389,6 +389,8 @@ func (h *Hub) requestFromNet(request *RequestData) {
 		for i := len(subs) - 1; i >= 0; i-- {
 		for i := len(subs) - 1; i >= 0; i-- {
 			rg := subs[i]
 			rg := subs[i]
 			if rg.Filter(request.conn) {
 			if rg.Filter(request.conn) {
+				// 加入filter是为了能更好看到是哪个过滤器匹配的
+				request.filter = rg.Filter
 				state, data := rg.BackFunc(request)
 				state, data := rg.BackFunc(request)
 				// NEXT_SUBSCRIBE 表示当前的函数没有处理完成,还需要下个注册函数处理
 				// NEXT_SUBSCRIBE 表示当前的函数没有处理完成,还需要下个注册函数处理
 				if state == config.NEXT_SUBSCRIBE {
 				if state == config.NEXT_SUBSCRIBE {

+ 1 - 0
type.go

@@ -91,6 +91,7 @@ type RequestData struct {
 	timeout  int                // 超时时间,单位为毫秒
 	timeout  int                // 超时时间,单位为毫秒
 	backchan chan *ResponseData // 返回数据的管道
 	backchan chan *ResponseData // 返回数据的管道
 	conn     *Line              // 将连接传递出去是为了能够让上层找回来
 	conn     *Line              // 将连接传递出去是为了能够让上层找回来
+	filter   FilterFunc         // 过滤器
 }
 }
 
 
 func (r *RequestData) Conn() *Line {
 func (r *RequestData) Conn() *Line {