Joyit преди 2 дни
родител
ревизия
f47337f59f
променени са 4 файла, в които са добавени 21 реда и са изтрити 8 реда
  1. 9 3
      examples/server.go
  2. 5 3
      filter.go
  3. 2 2
      hub.go
  4. 5 0
      line.go

+ 9 - 3
examples/server.go

@@ -94,13 +94,19 @@ func main() {
 	// 订阅频道
 	hub.Subscribe(remoteFilter, "hello",
 		func(request *tinymq.RequestData) (state uint8, result any) {
-			log.Println("[server RECV]<-", string(request.Data))
+			// log.Println("[server RECV]<-", string(request.Data))
 			return 1, []byte("tiny server")
 		},
 	)
+	hub.Subscribe(remoteFilter, "echo",
+		func(request *tinymq.RequestData) (state uint8, result any) {
+			// log.Println("[server RECV]<-", string(request.Data))
+			return 1, request.Data
+		},
+	)
 	hub.Subscribe(remoteFilter, "nodata",
 		func(request *tinymq.RequestData) (state uint8, result any) {
-			log.Println("[server RECV]<-", string(request.Data))
+			// log.Println("[server RECV]<-", string(request.Data))
 			return 1, nil
 		},
 	)
@@ -109,7 +115,7 @@ func main() {
 	})
 	hub.Subscribe(remoteFilter, "push",
 		func(request *tinymq.RequestData) (state uint8, result any) {
-			log.Println("[server RECV]<-", string(request.Data))
+			// log.Println("[server RECV]<-", string(request.Data))
 			return 1, nil
 		},
 	)

+ 5 - 3
filter.go

@@ -1,6 +1,9 @@
 package tinymq
 
-import "regexp"
+import (
+	"regexp"
+	"strings"
+)
 
 // 正则频道过滤器
 func RegChannelFilter(channel *regexp.Regexp) FilterFunc {
@@ -11,8 +14,7 @@ func RegChannelFilter(channel *regexp.Regexp) FilterFunc {
 
 // 字符串频道过滤器
 func StrChannelFilter(channel string) FilterFunc {
-	c := regexp.MustCompile(channel)
 	return func(conn *Line) (ok bool) {
-		return c.MatchString(conn.channel)
+		return strings.Contains(conn.channel, channel)
 	}
 }

+ 2 - 2
hub.go

@@ -57,7 +57,7 @@ type Hub struct {
 }
 
 // 转换数据
-func (h *Hub) convData(data any) (reqData []byte, err error) {
+func (h *Hub) convertData(data any) (reqData []byte, err error) {
 	switch data := data.(type) {
 	case []byte:
 		reqData = data
@@ -249,7 +249,7 @@ func (h *Hub) outResponse(response *ResponseData) {
 // 发送数据到网络接口
 // 返回发送的数量
 func (h *Hub) sendRequest(gd *GetData) (count int) {
-	outData, err := h.convData(gd.Data)
+	outData, err := h.convertData(gd.Data)
 	if err != nil {
 		log.Println(err)
 		return 0

+ 5 - 0
line.go

@@ -38,6 +38,11 @@ type Line struct {
 	updated time.Time // 更新时间
 }
 
+// 获取当前连接信息
+func (c *Line) Host() *HostInfo {
+	return c.host
+}
+
 // 获取开始时间
 func (c *Line) Started() time.Time {
 	return c.started