diff --git a/config/notification.yml b/config/notification.yml index ba5ca1c21..c3ae01539 100644 --- a/config/notification.yml +++ b/config/notification.yml @@ -1,10 +1,8 @@ groupCreated: isSendMsg: true -# Reliability level of the message sending. -# Set to 1 to send only when online, 2 for guaranteed delivery. +# Deprecated. Fixed as 1. reliabilityLevel: 1 -# This setting is effective only when 'isSendMsg' is true. -# It controls whether to count unread messages. +# Deprecated. Fixed as false. unreadCount: false # Configuration for offline push notifications. offlinePush: diff --git a/docker-compose.yml b/docker-compose.yml index d6fe18a7d..4334790e1 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -173,6 +173,7 @@ services: - ./config/alertmanager.yml:/etc/alertmanager/alertmanager.yml - ./config/email.tmpl:/etc/alertmanager/email.tmpl command: + - '--config.file=/etc/alertmanager/alertmanager.yml' - '--web.listen-address=:${ALERTMANAGER_PORT}' network_mode: host diff --git a/pkg/common/cmd/auth.go b/pkg/common/cmd/auth.go index 80a675ace..bf51a2cf3 100644 --- a/pkg/common/cmd/auth.go +++ b/pkg/common/cmd/auth.go @@ -56,5 +56,5 @@ func (a *AuthRpcCmd) Exec() error { func (a *AuthRpcCmd) runE() error { return startrpc.Start(a.ctx, &a.authConfig.Discovery, &a.authConfig.RpcConfig.Prometheus, a.authConfig.RpcConfig.RPC.ListenIP, a.authConfig.RpcConfig.RPC.RegisterIP, a.authConfig.RpcConfig.RPC.AutoSetPorts, a.authConfig.RpcConfig.RPC.Ports, - a.Index(), a.authConfig.Discovery.RpcService.Auth, &a.authConfig.Share, a.authConfig, auth.Start) + a.Index(), a.authConfig.Discovery.RpcService.Auth, nil, a.authConfig, auth.Start) } diff --git a/pkg/common/cmd/conversation.go b/pkg/common/cmd/conversation.go index 72fa694ed..4d38f7fd4 100644 --- a/pkg/common/cmd/conversation.go +++ b/pkg/common/cmd/conversation.go @@ -58,5 +58,5 @@ func (a *ConversationRpcCmd) Exec() error { func (a *ConversationRpcCmd) runE() error { return startrpc.Start(a.ctx, &a.conversationConfig.Discovery, &a.conversationConfig.RpcConfig.Prometheus, a.conversationConfig.RpcConfig.RPC.ListenIP, a.conversationConfig.RpcConfig.RPC.RegisterIP, a.conversationConfig.RpcConfig.RPC.AutoSetPorts, a.conversationConfig.RpcConfig.RPC.Ports, - a.Index(), a.conversationConfig.Discovery.RpcService.Conversation, &a.conversationConfig.Share, a.conversationConfig, conversation.Start) + a.Index(), a.conversationConfig.Discovery.RpcService.Conversation, &a.conversationConfig.NotificationConfig, a.conversationConfig, conversation.Start) } diff --git a/pkg/common/cmd/friend.go b/pkg/common/cmd/friend.go index b40449b2b..800116531 100644 --- a/pkg/common/cmd/friend.go +++ b/pkg/common/cmd/friend.go @@ -59,5 +59,5 @@ func (a *FriendRpcCmd) Exec() error { func (a *FriendRpcCmd) runE() error { return startrpc.Start(a.ctx, &a.relationConfig.Discovery, &a.relationConfig.RpcConfig.Prometheus, a.relationConfig.RpcConfig.RPC.ListenIP, a.relationConfig.RpcConfig.RPC.RegisterIP, a.relationConfig.RpcConfig.RPC.AutoSetPorts, a.relationConfig.RpcConfig.RPC.Ports, - a.Index(), a.relationConfig.Discovery.RpcService.Friend, &a.relationConfig.Share, a.relationConfig, relation.Start) + a.Index(), a.relationConfig.Discovery.RpcService.Friend, &a.relationConfig.NotificationConfig, a.relationConfig, relation.Start) } diff --git a/pkg/common/cmd/group.go b/pkg/common/cmd/group.go index faed56233..4f8d17516 100644 --- a/pkg/common/cmd/group.go +++ b/pkg/common/cmd/group.go @@ -60,5 +60,5 @@ func (a *GroupRpcCmd) Exec() error { func (a *GroupRpcCmd) runE() error { return startrpc.Start(a.ctx, &a.groupConfig.Discovery, &a.groupConfig.RpcConfig.Prometheus, a.groupConfig.RpcConfig.RPC.ListenIP, a.groupConfig.RpcConfig.RPC.RegisterIP, a.groupConfig.RpcConfig.RPC.AutoSetPorts, a.groupConfig.RpcConfig.RPC.Ports, - a.Index(), a.groupConfig.Discovery.RpcService.Group, &a.groupConfig.Share, a.groupConfig, group.Start, versionctx.EnableVersionCtx()) + a.Index(), a.groupConfig.Discovery.RpcService.Group, &a.groupConfig.NotificationConfig, a.groupConfig, group.Start, versionctx.EnableVersionCtx()) } diff --git a/pkg/common/cmd/msg.go b/pkg/common/cmd/msg.go index 962d1468a..b6647f9c1 100644 --- a/pkg/common/cmd/msg.go +++ b/pkg/common/cmd/msg.go @@ -60,5 +60,5 @@ func (a *MsgRpcCmd) Exec() error { func (a *MsgRpcCmd) runE() error { return startrpc.Start(a.ctx, &a.msgConfig.Discovery, &a.msgConfig.RpcConfig.Prometheus, a.msgConfig.RpcConfig.RPC.ListenIP, a.msgConfig.RpcConfig.RPC.RegisterIP, a.msgConfig.RpcConfig.RPC.AutoSetPorts, a.msgConfig.RpcConfig.RPC.Ports, - a.Index(), a.msgConfig.Discovery.RpcService.Msg, &a.msgConfig.Share, a.msgConfig, msg.Start) + a.Index(), a.msgConfig.Discovery.RpcService.Msg, &a.msgConfig.NotificationConfig, a.msgConfig, msg.Start) } diff --git a/pkg/common/cmd/push.go b/pkg/common/cmd/push.go index 09883fc34..93b502cd8 100644 --- a/pkg/common/cmd/push.go +++ b/pkg/common/cmd/push.go @@ -60,5 +60,5 @@ func (a *PushRpcCmd) Exec() error { func (a *PushRpcCmd) runE() error { return startrpc.Start(a.ctx, &a.pushConfig.Discovery, &a.pushConfig.RpcConfig.Prometheus, a.pushConfig.RpcConfig.RPC.ListenIP, a.pushConfig.RpcConfig.RPC.RegisterIP, a.pushConfig.RpcConfig.RPC.AutoSetPorts, a.pushConfig.RpcConfig.RPC.Ports, - a.Index(), a.pushConfig.Discovery.RpcService.Push, &a.pushConfig.Share, a.pushConfig, push.Start) + a.Index(), a.pushConfig.Discovery.RpcService.Push, &a.pushConfig.NotificationConfig, a.pushConfig, push.Start) } diff --git a/pkg/common/cmd/third.go b/pkg/common/cmd/third.go index 8e9ffb9bd..e43f61732 100644 --- a/pkg/common/cmd/third.go +++ b/pkg/common/cmd/third.go @@ -59,5 +59,5 @@ func (a *ThirdRpcCmd) Exec() error { func (a *ThirdRpcCmd) runE() error { return startrpc.Start(a.ctx, &a.thirdConfig.Discovery, &a.thirdConfig.RpcConfig.Prometheus, a.thirdConfig.RpcConfig.RPC.ListenIP, a.thirdConfig.RpcConfig.RPC.RegisterIP, a.thirdConfig.RpcConfig.RPC.AutoSetPorts, a.thirdConfig.RpcConfig.RPC.Ports, - a.Index(), a.thirdConfig.Discovery.RpcService.Third, &a.thirdConfig.Share, a.thirdConfig, third.Start) + a.Index(), a.thirdConfig.Discovery.RpcService.Third, &a.thirdConfig.NotificationConfig, a.thirdConfig, third.Start) } diff --git a/pkg/common/cmd/user.go b/pkg/common/cmd/user.go index 40f372770..dc848a775 100644 --- a/pkg/common/cmd/user.go +++ b/pkg/common/cmd/user.go @@ -60,5 +60,5 @@ func (a *UserRpcCmd) Exec() error { func (a *UserRpcCmd) runE() error { return startrpc.Start(a.ctx, &a.userConfig.Discovery, &a.userConfig.RpcConfig.Prometheus, a.userConfig.RpcConfig.RPC.ListenIP, a.userConfig.RpcConfig.RPC.RegisterIP, a.userConfig.RpcConfig.RPC.AutoSetPorts, a.userConfig.RpcConfig.RPC.Ports, - a.Index(), a.userConfig.Discovery.RpcService.User, &a.userConfig.Share, a.userConfig, user.Start) + a.Index(), a.userConfig.Discovery.RpcService.User, &a.userConfig.NotificationConfig, a.userConfig, user.Start) } diff --git a/pkg/common/config/config.go b/pkg/common/config/config.go index 25748a618..da11a20e7 100644 --- a/pkg/common/config/config.go +++ b/pkg/common/config/config.go @@ -610,3 +610,72 @@ func (l *CacheConfig) Success() time.Duration { func (l *CacheConfig) Enable() bool { return l.Topic != "" && l.SlotNum > 0 && l.SlotSize > 0 } + +func InitNotification(notification *Notification) { + notification.GroupCreated.UnreadCount = false + notification.GroupCreated.ReliabilityLevel = 1 + notification.GroupInfoSet.UnreadCount = false + notification.GroupInfoSet.ReliabilityLevel = 1 + notification.JoinGroupApplication.UnreadCount = false + notification.JoinGroupApplication.ReliabilityLevel = 1 + notification.MemberQuit.UnreadCount = false + notification.MemberQuit.ReliabilityLevel = 1 + notification.GroupApplicationAccepted.UnreadCount = false + notification.GroupApplicationAccepted.ReliabilityLevel = 1 + notification.GroupApplicationRejected.UnreadCount = false + notification.GroupApplicationRejected.ReliabilityLevel = 1 + notification.GroupOwnerTransferred.UnreadCount = false + notification.GroupOwnerTransferred.ReliabilityLevel = 1 + notification.MemberKicked.UnreadCount = false + notification.MemberKicked.ReliabilityLevel = 1 + notification.MemberInvited.UnreadCount = false + notification.MemberInvited.ReliabilityLevel = 1 + notification.MemberEnter.UnreadCount = false + notification.MemberEnter.ReliabilityLevel = 1 + notification.GroupDismissed.UnreadCount = false + notification.GroupDismissed.ReliabilityLevel = 1 + notification.GroupMuted.UnreadCount = false + notification.GroupMuted.ReliabilityLevel = 1 + notification.GroupCancelMuted.UnreadCount = false + notification.GroupCancelMuted.ReliabilityLevel = 1 + notification.GroupMemberMuted.UnreadCount = false + notification.GroupMemberMuted.ReliabilityLevel = 1 + notification.GroupMemberCancelMuted.UnreadCount = false + notification.GroupMemberCancelMuted.ReliabilityLevel = 1 + notification.GroupMemberInfoSet.UnreadCount = false + notification.GroupMemberInfoSet.ReliabilityLevel = 1 + notification.GroupMemberSetToAdmin.UnreadCount = false + notification.GroupMemberSetToAdmin.ReliabilityLevel = 1 + notification.GroupMemberSetToOrdinary.UnreadCount = false + notification.GroupMemberSetToOrdinary.ReliabilityLevel = 1 + notification.GroupInfoSetAnnouncement.UnreadCount = false + notification.GroupInfoSetAnnouncement.ReliabilityLevel = 1 + notification.GroupInfoSetName.UnreadCount = false + notification.GroupInfoSetName.ReliabilityLevel = 1 + notification.FriendApplicationAdded.UnreadCount = false + notification.FriendApplicationAdded.ReliabilityLevel = 1 + notification.FriendApplicationApproved.UnreadCount = false + notification.FriendApplicationApproved.ReliabilityLevel = 1 + notification.FriendApplicationRejected.UnreadCount = false + notification.FriendApplicationRejected.ReliabilityLevel = 1 + notification.FriendAdded.UnreadCount = false + notification.FriendAdded.ReliabilityLevel = 1 + notification.FriendDeleted.UnreadCount = false + notification.FriendDeleted.ReliabilityLevel = 1 + notification.FriendRemarkSet.UnreadCount = false + notification.FriendRemarkSet.ReliabilityLevel = 1 + notification.BlackAdded.UnreadCount = false + notification.BlackAdded.ReliabilityLevel = 1 + notification.BlackDeleted.UnreadCount = false + notification.BlackDeleted.ReliabilityLevel = 1 + notification.FriendInfoUpdated.UnreadCount = false + notification.FriendInfoUpdated.ReliabilityLevel = 1 + notification.UserInfoUpdated.UnreadCount = false + notification.UserInfoUpdated.ReliabilityLevel = 1 + notification.UserStatusChanged.UnreadCount = false + notification.UserStatusChanged.ReliabilityLevel = 1 + notification.ConversationChanged.UnreadCount = false + notification.ConversationChanged.ReliabilityLevel = 1 + notification.ConversationSetPrivate.UnreadCount = false + notification.ConversationSetPrivate.ReliabilityLevel = 1 +} diff --git a/pkg/common/startrpc/start.go b/pkg/common/startrpc/start.go index 259f4caed..fd46fb45c 100644 --- a/pkg/common/startrpc/start.go +++ b/pkg/common/startrpc/start.go @@ -47,8 +47,9 @@ import ( // Start rpc server. func Start[T any](ctx context.Context, discovery *conf.Discovery, prometheusConfig *conf.Prometheus, listenIP, - registerIP string, autoSetPorts bool, rpcPorts []int, index int, rpcRegisterName string, share *conf.Share, config T, rpcFn func(ctx context.Context, - config T, client discovery.SvcDiscoveryRegistry, server *grpc.Server) error, options ...grpc.ServerOption) error { + registerIP string, autoSetPorts bool, rpcPorts []int, index int, rpcRegisterName string, notification *conf.Notification, config T, + rpcFn func(ctx context.Context, config T, client discovery.SvcDiscoveryRegistry, server *grpc.Server) error, + options ...grpc.ServerOption) error { var ( rpcTcpAddr string @@ -57,6 +58,10 @@ func Start[T any](ctx context.Context, discovery *conf.Discovery, prometheusConf prometheusPort int ) + if notification != nil { + conf.InitNotification(notification) + } + registerIP, err := network.GetRpcRegisterIP(registerIP) if err != nil { return err