filter.go 508 B

123456789101112131415161718192021222324252627
  1. package tinymq
  2. import (
  3. "regexp"
  4. "strings"
  5. )
  6. // 匹配所有的频道
  7. func AllChannelFilter() FilterFunc {
  8. return func(conn *Line) (ok bool) {
  9. return true
  10. }
  11. }
  12. // 正则频道过滤器
  13. func RegChannelFilter(channel *regexp.Regexp) FilterFunc {
  14. return func(conn *Line) (ok bool) {
  15. return channel.MatchString(conn.channel)
  16. }
  17. }
  18. // 字符串频道过滤器
  19. func StrChannelFilter(channel string) FilterFunc {
  20. return func(conn *Line) (ok bool) {
  21. return strings.Contains(conn.channel, channel)
  22. }
  23. }