gob 등록
This commit is contained in:
@ -116,6 +116,12 @@ var config wsConfig
|
||||
|
||||
func init() {
|
||||
gocommon.LoadConfig(&config)
|
||||
gob.Register(UpstreamMessage{})
|
||||
gob.Register(commandMessage{})
|
||||
gob.Register(map[string]any{})
|
||||
gob.Register(primitive.A{})
|
||||
gob.Register(primitive.M{})
|
||||
gob.Register(primitive.ObjectID{})
|
||||
}
|
||||
|
||||
func NewWebsocketHandler() (*WebsocketHandler, error) {
|
||||
@ -339,9 +345,14 @@ func (sh *subhandler) mainLoop(ctx context.Context) {
|
||||
}
|
||||
}
|
||||
|
||||
var err error
|
||||
enc := gob.NewEncoder(buffer)
|
||||
if err := enc.Encode(usermsg); err == nil {
|
||||
sh.redisSync.Publish(context.Background(), sh.redisMsgChanName, buffer).Result()
|
||||
if err = enc.Encode(usermsg); err == nil {
|
||||
_, err = sh.redisSync.Publish(context.Background(), sh.redisMsgChanName, buffer.Bytes()).Result()
|
||||
}
|
||||
|
||||
if err != nil {
|
||||
logger.Println("gob.Encode or publish failed :", err)
|
||||
}
|
||||
|
||||
case *commandMessage:
|
||||
@ -368,9 +379,13 @@ func (sh *subhandler) mainLoop(ctx context.Context) {
|
||||
}
|
||||
|
||||
// 위에서 break 안걸리면 나한테 없으므로 publish를 해야 함. 그러면 다른 호스트가 deliveryChan으로 받는다
|
||||
var err error
|
||||
enc := gob.NewEncoder(buffer)
|
||||
if err := enc.Encode(usermsg); err == nil {
|
||||
sh.redisSync.Publish(context.Background(), sh.redisCmdChanName, buffer).Result()
|
||||
if err = enc.Encode(usermsg); err == nil {
|
||||
_, err = sh.redisSync.Publish(context.Background(), sh.redisCmdChanName, buffer.Bytes()).Result()
|
||||
}
|
||||
if err != nil {
|
||||
logger.Println("gob.Encode or Publish failed :", err)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user