Przeglądaj źródła

Merge branch 'main' into test

luoyangwei 1 rok temu
rodzic
commit
10073d6522
3 zmienionych plików z 24 dodań i 6 usunięć
  1. 8 0
      go.mod
  2. 7 0
      go.sum
  3. 9 6
      server/nats.go

+ 8 - 0
go.mod

@@ -11,7 +11,11 @@ require (
 	github.com/google/uuid v1.4.0
 	github.com/gorilla/websocket v1.5.1
 	github.com/mitchellh/mapstructure v1.5.0
+<<<<<<< HEAD
 	github.com/nats-io/nats.go v1.32.0
+=======
+	github.com/nats-io/nats.go v1.31.0
+>>>>>>> main
 	github.com/redis/go-redis/v9 v9.4.0
 	github.com/rotisserie/eris v0.5.4
 	github.com/spf13/viper v1.18.2
@@ -45,7 +49,11 @@ require (
 	github.com/mattn/go-isatty v0.0.20 // indirect
 	github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
 	github.com/modern-go/reflect2 v1.0.2 // indirect
+<<<<<<< HEAD
 	github.com/nats-io/nkeys v0.4.7 // indirect
+=======
+	github.com/nats-io/nkeys v0.4.6 // indirect
+>>>>>>> main
 	github.com/nats-io/nuid v1.0.1 // indirect
 	github.com/pelletier/go-toml/v2 v2.1.1 // indirect
 	github.com/sagikazarmark/locafero v0.4.0 // indirect

+ 7 - 0
go.sum

@@ -89,10 +89,17 @@ github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w
 github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
 github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M=
 github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk=
+<<<<<<< HEAD
 github.com/nats-io/nats.go v1.32.0 h1:Bx9BZS+aXYlxW08k8Gd3yR2s73pV5XSoAQUyp1Kwvp0=
 github.com/nats-io/nats.go v1.32.0/go.mod h1:Ubdu4Nh9exXdSz0RVWRFBbRfrbSxOYd26oF0wkWclB8=
 github.com/nats-io/nkeys v0.4.7 h1:RwNJbbIdYCoClSDNY7QVKZlyb/wfT6ugvFCiKy6vDvI=
 github.com/nats-io/nkeys v0.4.7/go.mod h1:kqXRgRDPlGy7nGaEDMuYzmiJCIAAWDK0IMBtDmGD0nc=
+=======
+github.com/nats-io/nats.go v1.31.0 h1:/WFBHEc/dOKBF6qf1TZhrdEfTmOZ5JzdJ+Y3m6Y/p7E=
+github.com/nats-io/nats.go v1.31.0/go.mod h1:di3Bm5MLsoB4Bx61CBTsxuarI36WbhAwOm8QrW39+i8=
+github.com/nats-io/nkeys v0.4.6 h1:IzVe95ru2CT6ta874rt9saQRkWfe2nFj1NtvYSLqMzY=
+github.com/nats-io/nkeys v0.4.6/go.mod h1:4DxZNzenSVd1cYQoAa8948QY3QDjrHfcfVADymtkpts=
+>>>>>>> main
 github.com/nats-io/nuid v1.0.1 h1:5iA8DT8V7q8WK2EScv2padNa/rTESc1KdnPw4TC2paw=
 github.com/nats-io/nuid v1.0.1/go.mod h1:19wcPz3Ph3q0Jbyiqsd0kePYG7A95tJPxeL+1OSON2c=
 github.com/pelletier/go-toml/v2 v2.1.1 h1:LWAJwfNvjQZCFIDKWYQaM62NcYeYViCmWIwmOStowAI=

+ 9 - 6
server/nats.go

@@ -74,15 +74,18 @@ func (n *Nats) run() {
 				zlog.Error(eris.Wrapf(err, "unable to message send: %s", nMsg.userId))
 			}
 		case msg := <-n.ch:
-			userId := msg.Header.Get(headerUserId)
-			if userId == "" {
+			userIds := msg.Header.Values(headerUserId)
+			zlog.Debugf("received nats ids: %v", userIds)
+			if len(userIds) < 1 {
 				continue
 			}
 			n.mutex.RLock()
-			if s, ok := n.Subscribers[userId]; ok {
-				message := deserializeMessage(msg.Data)
-				zlog.Debugf("[%s] message: %v", userId, string(msg.Data))
-				s.client.Send <- message
+			for _, uid := range userIds {
+				if s, ok := n.Subscribers[uid]; ok {
+					message := deserializeMessage(msg.Data)
+					zlog.Debugf("[%s] message: %v", uid, string(msg.Data))
+					s.client.Send <- message
+				}
 			}
 			n.mutex.RUnlock()
 		case s := <-n.Subscribe: