parent
ec687d3427
commit
fdcca96000
@ -0,0 +1,18 @@
|
|||||||
|
package push
|
||||||
|
|
||||||
|
import (
|
||||||
|
"github.com/OpenIMSDK/protocol/sdkws"
|
||||||
|
"github.com/OpenIMSDK/tools/constant"
|
||||||
|
"google.golang.org/protobuf/proto"
|
||||||
|
)
|
||||||
|
|
||||||
|
func GetContent(msg *sdkws.MsgData) string {
|
||||||
|
if msg.ContentType >= constant.NotificationBegin && msg.ContentType <= constant.NotificationEnd {
|
||||||
|
var tips sdkws.TipsComm
|
||||||
|
_ = proto.Unmarshal(msg.Content, &tips)
|
||||||
|
content := tips.JsonDetail
|
||||||
|
return content
|
||||||
|
} else {
|
||||||
|
return string(msg.Content)
|
||||||
|
}
|
||||||
|
}
|
@ -1,312 +0,0 @@
|
|||||||
// Copyright © 2023 OpenIM. All rights reserved.
|
|
||||||
//
|
|
||||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
// you may not use this file except in compliance with the License.
|
|
||||||
// You may obtain a copy of the License at
|
|
||||||
//
|
|
||||||
// http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
//
|
|
||||||
// Unless required by applicable law or agreed to in writing, software
|
|
||||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
// See the License for the specific language governing permissions and
|
|
||||||
// limitations under the License.
|
|
||||||
|
|
||||||
package config
|
|
||||||
|
|
||||||
import (
|
|
||||||
_ "embed"
|
|
||||||
)
|
|
||||||
|
|
||||||
//go:embed version
|
|
||||||
var Version string
|
|
||||||
|
|
||||||
var Config config
|
|
||||||
|
|
||||||
type CallBackConfig struct {
|
|
||||||
Enable bool `yaml:"enable"`
|
|
||||||
CallbackTimeOut int `yaml:"timeout"`
|
|
||||||
CallbackFailedContinue *bool `yaml:"failedContinue"`
|
|
||||||
}
|
|
||||||
|
|
||||||
type NotificationConf struct {
|
|
||||||
IsSendMsg bool `yaml:"isSendMsg"`
|
|
||||||
ReliabilityLevel int `yaml:"reliabilityLevel"` // 1 online 2 persistent
|
|
||||||
UnreadCount bool `yaml:"unreadCount"`
|
|
||||||
OfflinePush POfflinePush `yaml:"offlinePush"`
|
|
||||||
}
|
|
||||||
|
|
||||||
type POfflinePush struct {
|
|
||||||
Enable bool `yaml:"enable"`
|
|
||||||
Title string `yaml:"title"`
|
|
||||||
Desc string `yaml:"desc"`
|
|
||||||
Ext string `yaml:"ext"`
|
|
||||||
}
|
|
||||||
|
|
||||||
type config struct {
|
|
||||||
Zookeeper struct {
|
|
||||||
Schema string `yaml:"schema"`
|
|
||||||
ZkAddr []string `yaml:"address"`
|
|
||||||
Username string `yaml:"username"`
|
|
||||||
Password string `yaml:"password"`
|
|
||||||
} `yaml:"zookeeper"`
|
|
||||||
|
|
||||||
Mysql struct {
|
|
||||||
Address []string `yaml:"address"`
|
|
||||||
Username string `yaml:"username"`
|
|
||||||
Password string `yaml:"password"`
|
|
||||||
Database string `yaml:"database"`
|
|
||||||
MaxOpenConn int `yaml:"maxOpenConn"`
|
|
||||||
MaxIdleConn int `yaml:"maxIdleConn"`
|
|
||||||
MaxLifeTime int `yaml:"maxLifeTime"`
|
|
||||||
LogLevel int `yaml:"logLevel"`
|
|
||||||
SlowThreshold int `yaml:"slowThreshold"`
|
|
||||||
} `yaml:"mysql"`
|
|
||||||
|
|
||||||
Mongo struct {
|
|
||||||
Uri string `yaml:"uri"`
|
|
||||||
Address []string `yaml:"address"`
|
|
||||||
Database string `yaml:"database"`
|
|
||||||
Username string `yaml:"username"`
|
|
||||||
Password string `yaml:"password"`
|
|
||||||
MaxPoolSize int `yaml:"maxPoolSize"`
|
|
||||||
} `yaml:"mongo"`
|
|
||||||
|
|
||||||
Redis struct {
|
|
||||||
Address []string `yaml:"address"`
|
|
||||||
Username string `yaml:"username"`
|
|
||||||
Password string `yaml:"password"`
|
|
||||||
} `yaml:"redis"`
|
|
||||||
|
|
||||||
Kafka struct {
|
|
||||||
Username string `yaml:"username"`
|
|
||||||
Password string `yaml:"password"`
|
|
||||||
Addr []string `yaml:"addr"`
|
|
||||||
LatestMsgToRedis struct {
|
|
||||||
Topic string `yaml:"topic"`
|
|
||||||
} `yaml:"latestMsgToRedis"`
|
|
||||||
MsgToMongo struct {
|
|
||||||
Topic string `yaml:"topic"`
|
|
||||||
} `yaml:"offlineMsgToMongo"`
|
|
||||||
MsgToPush struct {
|
|
||||||
Topic string `yaml:"topic"`
|
|
||||||
} `yaml:"msgToPush"`
|
|
||||||
ConsumerGroupID struct {
|
|
||||||
MsgToRedis string `yaml:"msgToRedis"`
|
|
||||||
MsgToMongo string `yaml:"msgToMongo"`
|
|
||||||
MsgToMySql string `yaml:"msgToMySql"`
|
|
||||||
MsgToPush string `yaml:"msgToPush"`
|
|
||||||
} `yaml:"consumerGroupID"`
|
|
||||||
} `yaml:"kafka"`
|
|
||||||
|
|
||||||
Rpc struct {
|
|
||||||
RegisterIP string `yaml:"registerIP"`
|
|
||||||
ListenIP string `yaml:"listenIP"`
|
|
||||||
} `yaml:"rpc"`
|
|
||||||
|
|
||||||
Api struct {
|
|
||||||
OpenImApiPort []int `yaml:"openImApiPort"`
|
|
||||||
ListenIP string `yaml:"listenIP"`
|
|
||||||
} `yaml:"api"`
|
|
||||||
|
|
||||||
Object struct {
|
|
||||||
Enable string `yaml:"enable"`
|
|
||||||
ApiURL string `yaml:"apiURL"`
|
|
||||||
Minio struct {
|
|
||||||
Bucket string `yaml:"bucket"`
|
|
||||||
Endpoint string `yaml:"endpoint"`
|
|
||||||
AccessKeyID string `yaml:"accessKeyID"`
|
|
||||||
SecretAccessKey string `yaml:"secretAccessKey"`
|
|
||||||
SessionToken string `yaml:"sessionToken"`
|
|
||||||
} `yaml:"minio"`
|
|
||||||
Cos struct {
|
|
||||||
BucketURL string `yaml:"bucketURL"`
|
|
||||||
SecretID string `yaml:"secretID"`
|
|
||||||
SecretKey string `yaml:"secretKey"`
|
|
||||||
SessionToken string `yaml:"sessionToken"`
|
|
||||||
} `yaml:"cos"`
|
|
||||||
Oss struct {
|
|
||||||
Endpoint string `yaml:"endpoint"`
|
|
||||||
Bucket string `yaml:"bucket"`
|
|
||||||
BucketURL string `yaml:"bucketURL"`
|
|
||||||
AccessKeyID string `yaml:"accessKeyID"`
|
|
||||||
AccessKeySecret string `yaml:"accessKeySecret"`
|
|
||||||
SessionToken string `yaml:"sessionToken"`
|
|
||||||
} `yaml:"oss"`
|
|
||||||
} `yaml:"object"`
|
|
||||||
|
|
||||||
RpcPort struct {
|
|
||||||
OpenImUserPort []int `yaml:"openImUserPort"`
|
|
||||||
OpenImFriendPort []int `yaml:"openImFriendPort"`
|
|
||||||
OpenImMessagePort []int `yaml:"openImMessagePort"`
|
|
||||||
OpenImMessageGatewayPort []int `yaml:"openImMessageGatewayPort"`
|
|
||||||
OpenImGroupPort []int `yaml:"openImGroupPort"`
|
|
||||||
OpenImAuthPort []int `yaml:"openImAuthPort"`
|
|
||||||
OpenImPushPort []int `yaml:"openImPushPort"`
|
|
||||||
OpenImConversationPort []int `yaml:"openImConversationPort"`
|
|
||||||
OpenImRtcPort []int `yaml:"openImRtcPort"`
|
|
||||||
OpenImThirdPort []int `yaml:"openImThirdPort"`
|
|
||||||
} `yaml:"rpcPort"`
|
|
||||||
|
|
||||||
RpcRegisterName struct {
|
|
||||||
OpenImUserName string `yaml:"openImUserName"`
|
|
||||||
OpenImFriendName string `yaml:"openImFriendName"`
|
|
||||||
OpenImMsgName string `yaml:"openImMsgName"`
|
|
||||||
OpenImPushName string `yaml:"openImPushName"`
|
|
||||||
OpenImMessageGatewayName string `yaml:"openImMessageGatewayName"`
|
|
||||||
OpenImGroupName string `yaml:"openImGroupName"`
|
|
||||||
OpenImAuthName string `yaml:"openImAuthName"`
|
|
||||||
OpenImConversationName string `yaml:"openImConversationName"`
|
|
||||||
OpenImThirdName string `yaml:"openImThirdName"`
|
|
||||||
} `yaml:"rpcRegisterName"`
|
|
||||||
|
|
||||||
Log struct {
|
|
||||||
StorageLocation string `yaml:"storageLocation"`
|
|
||||||
RotationTime int `yaml:"rotationTime"`
|
|
||||||
RemainRotationCount uint `yaml:"remainRotationCount"`
|
|
||||||
RemainLogLevel int `yaml:"remainLogLevel"`
|
|
||||||
IsStdout bool `yaml:"isStdout"`
|
|
||||||
IsJson bool `yaml:"isJson"`
|
|
||||||
WithStack bool `yaml:"withStack"`
|
|
||||||
} `yaml:"log"`
|
|
||||||
|
|
||||||
LongConnSvr struct {
|
|
||||||
OpenImWsPort []int `yaml:"openImWsPort"`
|
|
||||||
WebsocketMaxConnNum int `yaml:"websocketMaxConnNum"`
|
|
||||||
WebsocketMaxMsgLen int `yaml:"websocketMaxMsgLen"`
|
|
||||||
WebsocketTimeout int `yaml:"websocketTimeout"`
|
|
||||||
} `yaml:"longConnSvr"`
|
|
||||||
|
|
||||||
Push struct {
|
|
||||||
Enable string `yaml:"enable"`
|
|
||||||
GeTui struct {
|
|
||||||
PushUrl string `yaml:"pushUrl"`
|
|
||||||
AppKey string `yaml:"appKey"`
|
|
||||||
Intent string `yaml:"intent"`
|
|
||||||
MasterSecret string `yaml:"masterSecret"`
|
|
||||||
ChannelID string `yaml:"channelID"`
|
|
||||||
ChannelName string `yaml:"channelName"`
|
|
||||||
} `yaml:"geTui"`
|
|
||||||
Fcm struct {
|
|
||||||
ServiceAccount string `yaml:"serviceAccount"`
|
|
||||||
} `yaml:"fcm"`
|
|
||||||
Jpns struct {
|
|
||||||
AppKey string `yaml:"appKey"`
|
|
||||||
MasterSecret string `yaml:"masterSecret"`
|
|
||||||
PushUrl string `yaml:"pushUrl"`
|
|
||||||
PushIntent string `yaml:"pushIntent"`
|
|
||||||
} `yaml:"jpns"`
|
|
||||||
}
|
|
||||||
Manager struct {
|
|
||||||
UserID []string `yaml:"userID"`
|
|
||||||
Nickname []string `yaml:"nickname"`
|
|
||||||
} `yaml:"manager"`
|
|
||||||
|
|
||||||
MultiLoginPolicy int `yaml:"multiLoginPolicy"`
|
|
||||||
ChatPersistenceMysql bool `yaml:"chatPersistenceMysql"`
|
|
||||||
MsgCacheTimeout int `yaml:"msgCacheTimeout"`
|
|
||||||
GroupMessageHasReadReceiptEnable bool `yaml:"groupMessageHasReadReceiptEnable"`
|
|
||||||
SingleMessageHasReadReceiptEnable bool `yaml:"singleMessageHasReadReceiptEnable"`
|
|
||||||
RetainChatRecords int `yaml:"retainChatRecords"`
|
|
||||||
ChatRecordsClearTime string `yaml:"chatRecordsClearTime"`
|
|
||||||
MsgDestructTime string `yaml:"msgDestructTime"`
|
|
||||||
Secret string `yaml:"secret"`
|
|
||||||
TokenPolicy struct {
|
|
||||||
Expire int64 `yaml:"expire"`
|
|
||||||
} `yaml:"tokenPolicy"`
|
|
||||||
MessageVerify struct {
|
|
||||||
FriendVerify *bool `yaml:"friendVerify"`
|
|
||||||
} `yaml:"messageVerify"`
|
|
||||||
|
|
||||||
IOSPush struct {
|
|
||||||
PushSound string `yaml:"pushSound"`
|
|
||||||
BadgeCount bool `yaml:"badgeCount"`
|
|
||||||
Production bool `yaml:"production"`
|
|
||||||
} `yaml:"iosPush"`
|
|
||||||
Callback struct {
|
|
||||||
CallbackUrl string `yaml:"url"`
|
|
||||||
CallbackBeforeSendSingleMsg CallBackConfig `yaml:"beforeSendSingleMsg"`
|
|
||||||
CallbackAfterSendSingleMsg CallBackConfig `yaml:"afterSendSingleMsg"`
|
|
||||||
CallbackBeforeSendGroupMsg CallBackConfig `yaml:"beforeSendGroupMsg"`
|
|
||||||
CallbackAfterSendGroupMsg CallBackConfig `yaml:"afterSendGroupMsg"`
|
|
||||||
CallbackMsgModify CallBackConfig `yaml:"msgModify"`
|
|
||||||
CallbackUserOnline CallBackConfig `yaml:"userOnline"`
|
|
||||||
CallbackUserOffline CallBackConfig `yaml:"userOffline"`
|
|
||||||
CallbackUserKickOff CallBackConfig `yaml:"userKickOff"`
|
|
||||||
CallbackOfflinePush CallBackConfig `yaml:"offlinePush"`
|
|
||||||
CallbackOnlinePush CallBackConfig `yaml:"onlinePush"`
|
|
||||||
CallbackBeforeSuperGroupOnlinePush CallBackConfig `yaml:"superGroupOnlinePush"`
|
|
||||||
CallbackBeforeAddFriend CallBackConfig `yaml:"beforeAddFriend"`
|
|
||||||
CallbackBeforeCreateGroup CallBackConfig `yaml:"beforeCreateGroup"`
|
|
||||||
CallbackBeforeMemberJoinGroup CallBackConfig `yaml:"beforeMemberJoinGroup"`
|
|
||||||
CallbackBeforeSetGroupMemberInfo CallBackConfig `yaml:"beforeSetGroupMemberInfo"`
|
|
||||||
} `yaml:"callback"`
|
|
||||||
|
|
||||||
Prometheus struct {
|
|
||||||
Enable bool `yaml:"enable"`
|
|
||||||
UserPrometheusPort []int `yaml:"userPrometheusPort"`
|
|
||||||
FriendPrometheusPort []int `yaml:"friendPrometheusPort"`
|
|
||||||
MessagePrometheusPort []int `yaml:"messagePrometheusPort"`
|
|
||||||
MessageGatewayPrometheusPort []int `yaml:"messageGatewayPrometheusPort"`
|
|
||||||
GroupPrometheusPort []int `yaml:"groupPrometheusPort"`
|
|
||||||
AuthPrometheusPort []int `yaml:"authPrometheusPort"`
|
|
||||||
PushPrometheusPort []int `yaml:"pushPrometheusPort"`
|
|
||||||
ConversationPrometheusPort []int `yaml:"conversationPrometheusPort"`
|
|
||||||
RtcPrometheusPort []int `yaml:"rtcPrometheusPort"`
|
|
||||||
MessageTransferPrometheusPort []int `yaml:"messageTransferPrometheusPort"`
|
|
||||||
ThirdPrometheusPort []int `yaml:"thirdPrometheusPort"`
|
|
||||||
} `yaml:"prometheus"`
|
|
||||||
Notification notification `yaml:"notification"`
|
|
||||||
}
|
|
||||||
|
|
||||||
type notification struct {
|
|
||||||
GroupCreated NotificationConf `yaml:"groupCreated"`
|
|
||||||
GroupInfoSet NotificationConf `yaml:"groupInfoSet"`
|
|
||||||
JoinGroupApplication NotificationConf `yaml:"joinGroupApplication"`
|
|
||||||
MemberQuit NotificationConf `yaml:"memberQuit"`
|
|
||||||
GroupApplicationAccepted NotificationConf `yaml:"groupApplicationAccepted"`
|
|
||||||
GroupApplicationRejected NotificationConf `yaml:"groupApplicationRejected"`
|
|
||||||
GroupOwnerTransferred NotificationConf `yaml:"groupOwnerTransferred"`
|
|
||||||
MemberKicked NotificationConf `yaml:"memberKicked"`
|
|
||||||
MemberInvited NotificationConf `yaml:"memberInvited"`
|
|
||||||
MemberEnter NotificationConf `yaml:"memberEnter"`
|
|
||||||
GroupDismissed NotificationConf `yaml:"groupDismissed"`
|
|
||||||
GroupMuted NotificationConf `yaml:"groupMuted"`
|
|
||||||
GroupCancelMuted NotificationConf `yaml:"groupCancelMuted"`
|
|
||||||
GroupMemberMuted NotificationConf `yaml:"groupMemberMuted"`
|
|
||||||
GroupMemberCancelMuted NotificationConf `yaml:"groupMemberCancelMuted"`
|
|
||||||
GroupMemberInfoSet NotificationConf `yaml:"groupMemberInfoSet"`
|
|
||||||
GroupMemberSetToAdmin NotificationConf `yaml:"groupMemberSetToAdmin"`
|
|
||||||
GroupMemberSetToOrdinary NotificationConf `yaml:"groupMemberSetToOrdinaryUser"`
|
|
||||||
GroupInfoSetAnnouncement NotificationConf `yaml:"groupInfoSetAnnouncement"`
|
|
||||||
GroupInfoSetName NotificationConf `yaml:"groupInfoSetName"`
|
|
||||||
////////////////////////user///////////////////////
|
|
||||||
UserInfoUpdated NotificationConf `yaml:"userInfoUpdated"`
|
|
||||||
//////////////////////friend///////////////////////
|
|
||||||
FriendApplicationAdded NotificationConf `yaml:"friendApplicationAdded"`
|
|
||||||
FriendApplicationApproved NotificationConf `yaml:"friendApplicationApproved"`
|
|
||||||
FriendApplicationRejected NotificationConf `yaml:"friendApplicationRejected"`
|
|
||||||
FriendAdded NotificationConf `yaml:"friendAdded"`
|
|
||||||
FriendDeleted NotificationConf `yaml:"friendDeleted"`
|
|
||||||
FriendRemarkSet NotificationConf `yaml:"friendRemarkSet"`
|
|
||||||
BlackAdded NotificationConf `yaml:"blackAdded"`
|
|
||||||
BlackDeleted NotificationConf `yaml:"blackDeleted"`
|
|
||||||
FriendInfoUpdated NotificationConf `yaml:"friendInfoUpdated"`
|
|
||||||
//////////////////////conversation///////////////////////
|
|
||||||
ConversationChanged NotificationConf `yaml:"conversationChanged"`
|
|
||||||
ConversationSetPrivate NotificationConf `yaml:"conversationSetPrivate"`
|
|
||||||
}
|
|
||||||
|
|
||||||
func GetServiceNames() []string {
|
|
||||||
return []string{
|
|
||||||
Config.RpcRegisterName.OpenImUserName,
|
|
||||||
Config.RpcRegisterName.OpenImFriendName,
|
|
||||||
Config.RpcRegisterName.OpenImMsgName,
|
|
||||||
Config.RpcRegisterName.OpenImPushName,
|
|
||||||
Config.RpcRegisterName.OpenImMessageGatewayName,
|
|
||||||
Config.RpcRegisterName.OpenImGroupName,
|
|
||||||
Config.RpcRegisterName.OpenImAuthName,
|
|
||||||
Config.RpcRegisterName.OpenImConversationName,
|
|
||||||
Config.RpcRegisterName.OpenImThirdName,
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,363 +0,0 @@
|
|||||||
// Copyright © 2023 OpenIM. All rights reserved.
|
|
||||||
//
|
|
||||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
// you may not use this file except in compliance with the License.
|
|
||||||
// You may obtain a copy of the License at
|
|
||||||
//
|
|
||||||
// http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
//
|
|
||||||
// Unless required by applicable law or agreed to in writing, software
|
|
||||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
// See the License for the specific language governing permissions and
|
|
||||||
// limitations under the License.
|
|
||||||
|
|
||||||
package constant
|
|
||||||
|
|
||||||
const (
|
|
||||||
|
|
||||||
///ContentType
|
|
||||||
//UserRelated.
|
|
||||||
ContentTypeBegin = 100
|
|
||||||
Text = 101
|
|
||||||
Picture = 102
|
|
||||||
Voice = 103
|
|
||||||
Video = 104
|
|
||||||
File = 105
|
|
||||||
AtText = 106
|
|
||||||
Merger = 107
|
|
||||||
Card = 108
|
|
||||||
Location = 109
|
|
||||||
Custom = 110
|
|
||||||
Revoke = 111
|
|
||||||
Typing = 113
|
|
||||||
Quote = 114
|
|
||||||
|
|
||||||
AdvancedText = 117
|
|
||||||
|
|
||||||
CustomNotTriggerConversation = 119
|
|
||||||
CustomOnlineOnly = 120
|
|
||||||
ReactionMessageModifier = 121
|
|
||||||
ReactionMessageDeleter = 122
|
|
||||||
|
|
||||||
Common = 200
|
|
||||||
GroupMsg = 201
|
|
||||||
SignalMsg = 202
|
|
||||||
CustomNotification = 203
|
|
||||||
|
|
||||||
// SysRelated.
|
|
||||||
NotificationBegin = 1000
|
|
||||||
|
|
||||||
FriendApplicationApprovedNotification = 1201 // add_friend_response
|
|
||||||
FriendApplicationRejectedNotification = 1202 // add_friend_response
|
|
||||||
FriendApplicationNotification = 1203 // add_friend
|
|
||||||
FriendAddedNotification = 1204
|
|
||||||
FriendDeletedNotification = 1205 // delete_friend
|
|
||||||
FriendRemarkSetNotification = 1206 // set_friend_remark?
|
|
||||||
BlackAddedNotification = 1207 // add_black
|
|
||||||
BlackDeletedNotification = 1208 // remove_black
|
|
||||||
FriendInfoUpdatedNotification = 1209
|
|
||||||
|
|
||||||
ConversationChangeNotification = 1300 // change conversation opt
|
|
||||||
|
|
||||||
UserNotificationBegin = 1301
|
|
||||||
UserInfoUpdatedNotification = 1303 // SetSelfInfoTip = 204
|
|
||||||
UserNotificationEnd = 1399
|
|
||||||
OANotification = 1400
|
|
||||||
|
|
||||||
GroupNotificationBegin = 1500
|
|
||||||
|
|
||||||
GroupCreatedNotification = 1501
|
|
||||||
GroupInfoSetNotification = 1502
|
|
||||||
JoinGroupApplicationNotification = 1503
|
|
||||||
MemberQuitNotification = 1504
|
|
||||||
GroupApplicationAcceptedNotification = 1505
|
|
||||||
GroupApplicationRejectedNotification = 1506
|
|
||||||
GroupOwnerTransferredNotification = 1507
|
|
||||||
MemberKickedNotification = 1508
|
|
||||||
MemberInvitedNotification = 1509
|
|
||||||
MemberEnterNotification = 1510
|
|
||||||
GroupDismissedNotification = 1511
|
|
||||||
GroupMemberMutedNotification = 1512
|
|
||||||
GroupMemberCancelMutedNotification = 1513
|
|
||||||
GroupMutedNotification = 1514
|
|
||||||
GroupCancelMutedNotification = 1515
|
|
||||||
GroupMemberInfoSetNotification = 1516
|
|
||||||
GroupMemberSetToAdminNotification = 1517
|
|
||||||
GroupMemberSetToOrdinaryUserNotification = 1518
|
|
||||||
GroupInfoSetAnnouncementNotification = 1519
|
|
||||||
GroupInfoSetNameNotification = 1520
|
|
||||||
|
|
||||||
SignalingNotificationBegin = 1600
|
|
||||||
SignalingNotification = 1601
|
|
||||||
SignalingNotificationEnd = 1649
|
|
||||||
|
|
||||||
SuperGroupNotificationBegin = 1650
|
|
||||||
SuperGroupUpdateNotification = 1651
|
|
||||||
MsgDeleteNotification = 1652
|
|
||||||
SuperGroupNotificationEnd = 1699
|
|
||||||
|
|
||||||
ConversationPrivateChatNotification = 1701
|
|
||||||
ConversationUnreadNotification = 1702
|
|
||||||
|
|
||||||
MsgRevokeNotification = 2101
|
|
||||||
|
|
||||||
BusinessNotificationBegin = 2000
|
|
||||||
BusinessNotification = 2001
|
|
||||||
BusinessNotificationEnd = 2099
|
|
||||||
|
|
||||||
ClearConversationNotification = 2101
|
|
||||||
DeleteMsgsNotification = 2102
|
|
||||||
|
|
||||||
HasReadReceipt = 2200
|
|
||||||
|
|
||||||
NotificationEnd = 5000
|
|
||||||
|
|
||||||
// status.
|
|
||||||
MsgNormal = 1
|
|
||||||
MsgDeleted = 4
|
|
||||||
|
|
||||||
// MsgFrom.
|
|
||||||
UserMsgType = 100
|
|
||||||
SysMsgType = 200
|
|
||||||
|
|
||||||
// SessionType.
|
|
||||||
SingleChatType = 1
|
|
||||||
GroupChatType = 2
|
|
||||||
SuperGroupChatType = 3
|
|
||||||
NotificationChatType = 4
|
|
||||||
// token.
|
|
||||||
NormalToken = 0
|
|
||||||
InValidToken = 1
|
|
||||||
KickedToken = 2
|
|
||||||
ExpiredToken = 3
|
|
||||||
|
|
||||||
// MultiTerminalLogin.
|
|
||||||
DefalutNotKick = 0
|
|
||||||
// Full-end login, but the same end is mutually exclusive.
|
|
||||||
AllLoginButSameTermKick = 1
|
|
||||||
// Only one of the endpoints can log in.
|
|
||||||
SingleTerminalLogin = 2
|
|
||||||
// The web side can be online at the same time, and the other side can only log in at one end.
|
|
||||||
WebAndOther = 3
|
|
||||||
// The PC side is mutually exclusive, and the mobile side is mutually exclusive, but the web side can be online at
|
|
||||||
// the same time.
|
|
||||||
PcMobileAndWeb = 4
|
|
||||||
// The PC terminal can be online at the same time,but other terminal only one of the endpoints can login.
|
|
||||||
PCAndOther = 5
|
|
||||||
|
|
||||||
OnlineStatus = "online"
|
|
||||||
OfflineStatus = "offline"
|
|
||||||
Registered = "registered"
|
|
||||||
UnRegistered = "unregistered"
|
|
||||||
|
|
||||||
// MsgReceiveOpt.
|
|
||||||
ReceiveMessage = 0
|
|
||||||
NotReceiveMessage = 1
|
|
||||||
ReceiveNotNotifyMessage = 2
|
|
||||||
|
|
||||||
// OptionsKey.
|
|
||||||
IsHistory = "history"
|
|
||||||
IsPersistent = "persistent"
|
|
||||||
IsOfflinePush = "offlinePush"
|
|
||||||
IsUnreadCount = "unreadCount"
|
|
||||||
IsConversationUpdate = "conversationUpdate"
|
|
||||||
IsSenderSync = "senderSync"
|
|
||||||
IsNotPrivate = "notPrivate"
|
|
||||||
IsSenderConversationUpdate = "senderConversationUpdate"
|
|
||||||
IsSenderNotificationPush = "senderNotificationPush"
|
|
||||||
IsReactionFromCache = "reactionFromCache"
|
|
||||||
IsNotNotification = "isNotNotification"
|
|
||||||
IsSendMsg = "isSendMsg"
|
|
||||||
|
|
||||||
// GroupStatus.
|
|
||||||
GroupOk = 0
|
|
||||||
GroupBanChat = 1
|
|
||||||
GroupStatusDismissed = 2
|
|
||||||
GroupStatusMuted = 3
|
|
||||||
|
|
||||||
// GroupType.
|
|
||||||
NormalGroup = 0
|
|
||||||
SuperGroup = 1
|
|
||||||
WorkingGroup = 2
|
|
||||||
|
|
||||||
GroupBaned = 3
|
|
||||||
GroupBanPrivateChat = 4
|
|
||||||
|
|
||||||
// UserJoinGroupSource.
|
|
||||||
JoinByAdmin = 1
|
|
||||||
|
|
||||||
JoinByInvitation = 2
|
|
||||||
JoinBySearch = 3
|
|
||||||
JoinByQRCode = 4
|
|
||||||
|
|
||||||
// Minio.
|
|
||||||
MinioDurationTimes = 3600
|
|
||||||
// Aws.
|
|
||||||
AwsDurationTimes = 3600
|
|
||||||
|
|
||||||
// callbackCommand.
|
|
||||||
CallbackBeforeSendSingleMsgCommand = "callbackBeforeSendSingleMsgCommand"
|
|
||||||
CallbackAfterSendSingleMsgCommand = "callbackAfterSendSingleMsgCommand"
|
|
||||||
CallbackBeforeSendGroupMsgCommand = "callbackBeforeSendGroupMsgCommand"
|
|
||||||
CallbackAfterSendGroupMsgCommand = "callbackAfterSendGroupMsgCommand"
|
|
||||||
CallbackMsgModifyCommand = "callbackMsgModifyCommand"
|
|
||||||
CallbackUserOnlineCommand = "callbackUserOnlineCommand"
|
|
||||||
CallbackUserOfflineCommand = "callbackUserOfflineCommand"
|
|
||||||
CallbackUserKickOffCommand = "callbackUserKickOffCommand"
|
|
||||||
CallbackOfflinePushCommand = "callbackOfflinePushCommand"
|
|
||||||
CallbackOnlinePushCommand = "callbackOnlinePushCommand"
|
|
||||||
CallbackSuperGroupOnlinePushCommand = "callbackSuperGroupOnlinePushCommand"
|
|
||||||
CallbackBeforeAddFriendCommand = "callbackBeforeAddFriendCommand"
|
|
||||||
CallbackBeforeCreateGroupCommand = "callbackBeforeCreateGroupCommand"
|
|
||||||
CallbackBeforeMemberJoinGroupCommand = "callbackBeforeMemberJoinGroupCommand"
|
|
||||||
CallbackBeforeSetGroupMemberInfoCommand = "CallbackBeforeSetGroupMemberInfoCommand"
|
|
||||||
CallbackBeforeSetMessageReactionExtensionCommand = "callbackBeforeSetMessageReactionExtensionCommand"
|
|
||||||
CallbackBeforeDeleteMessageReactionExtensionsCommand = "callbackBeforeDeleteMessageReactionExtensionsCommand"
|
|
||||||
CallbackGetMessageListReactionExtensionsCommand = "callbackGetMessageListReactionExtensionsCommand"
|
|
||||||
CallbackAddMessageListReactionExtensionsCommand = "callbackAddMessageListReactionExtensionsCommand"
|
|
||||||
|
|
||||||
// callback actionCode.
|
|
||||||
ActionAllow = 0
|
|
||||||
ActionForbidden = 1
|
|
||||||
// callback callbackHandleCode.
|
|
||||||
CallbackHandleSuccess = 0
|
|
||||||
CallbackHandleFailed = 1
|
|
||||||
|
|
||||||
// minioUpload.
|
|
||||||
OtherType = 1
|
|
||||||
VideoType = 2
|
|
||||||
ImageType = 3
|
|
||||||
|
|
||||||
// sendMsgStaus.
|
|
||||||
MsgStatusNotExist = 0
|
|
||||||
MsgIsSending = 1
|
|
||||||
MsgSendSuccessed = 2
|
|
||||||
MsgSendFailed = 3
|
|
||||||
)
|
|
||||||
|
|
||||||
const (
|
|
||||||
WriteDiffusion = 0
|
|
||||||
ReadDiffusion = 1
|
|
||||||
)
|
|
||||||
|
|
||||||
const (
|
|
||||||
UnreliableNotification = 1
|
|
||||||
ReliableNotificationNoMsg = 2
|
|
||||||
ReliableNotificationMsg = 3
|
|
||||||
)
|
|
||||||
|
|
||||||
const (
|
|
||||||
AtAllString = "AtAllTag"
|
|
||||||
AtNormal = 0
|
|
||||||
AtMe = 1
|
|
||||||
AtAll = 2
|
|
||||||
AtAllAtMe = 3
|
|
||||||
GroupNotification = 4
|
|
||||||
)
|
|
||||||
|
|
||||||
var ContentType2PushContent = map[int64]string{
|
|
||||||
Picture: "[PICTURE]",
|
|
||||||
Voice: "[VOICE]",
|
|
||||||
Video: "[VIDEO]",
|
|
||||||
File: "[File]",
|
|
||||||
Text: "[TEXT]",
|
|
||||||
AtText: "[@TEXT]",
|
|
||||||
GroupMsg: "[GROUPMSG]]",
|
|
||||||
Common: "[NEWMSG]",
|
|
||||||
SignalMsg: "[SIGNALINVITE]",
|
|
||||||
}
|
|
||||||
|
|
||||||
const (
|
|
||||||
FieldRecvMsgOpt = 1
|
|
||||||
FieldIsPinned = 2
|
|
||||||
FieldAttachedInfo = 3
|
|
||||||
FieldIsPrivateChat = 4
|
|
||||||
FieldGroupAtType = 5
|
|
||||||
FieldEx = 7
|
|
||||||
FieldUnread = 8
|
|
||||||
FieldBurnDuration = 9
|
|
||||||
FieldHasReadSeq = 10
|
|
||||||
)
|
|
||||||
|
|
||||||
const (
|
|
||||||
AppOrdinaryUsers = 1
|
|
||||||
AppAdmin = 2
|
|
||||||
|
|
||||||
GroupOwner = 100
|
|
||||||
GroupAdmin = 60
|
|
||||||
GroupOrdinaryUsers = 20
|
|
||||||
|
|
||||||
GroupResponseAgree = 1
|
|
||||||
GroupResponseRefuse = -1
|
|
||||||
|
|
||||||
FriendResponseNotHandle = 0
|
|
||||||
FriendResponseAgree = 1
|
|
||||||
FriendResponseRefuse = -1
|
|
||||||
|
|
||||||
Male = 1
|
|
||||||
Female = 2
|
|
||||||
)
|
|
||||||
|
|
||||||
const (
|
|
||||||
OperationID = "operationID"
|
|
||||||
OpUserID = "opUserID"
|
|
||||||
ConnID = "connID"
|
|
||||||
OpUserPlatform = "platform"
|
|
||||||
Token = "token"
|
|
||||||
RpcCustomHeader = "customHeader" // rpc中间件自定义ctx参数
|
|
||||||
CheckKey = "CheckKey"
|
|
||||||
TriggerID = "triggerID"
|
|
||||||
RemoteAddr = "remoteAddr"
|
|
||||||
)
|
|
||||||
|
|
||||||
const (
|
|
||||||
BecomeFriendByImport = 1 // 管理员导入
|
|
||||||
BecomeFriendByApply = 2 // 申请添加
|
|
||||||
)
|
|
||||||
|
|
||||||
const (
|
|
||||||
ApplyNeedVerificationInviteDirectly = 0 // 申请需要同意 邀请直接进
|
|
||||||
AllNeedVerification = 1 // 所有人进群需要验证,除了群主管理员邀请进群
|
|
||||||
Directly = 2 // 直接进群
|
|
||||||
)
|
|
||||||
|
|
||||||
const (
|
|
||||||
GroupRPCRecvSize = 30
|
|
||||||
GroupRPCSendSize = 30
|
|
||||||
)
|
|
||||||
|
|
||||||
const FriendAcceptTip = "You have successfully become friends, so start chatting"
|
|
||||||
|
|
||||||
func GroupIsBanChat(status int32) bool {
|
|
||||||
if status != GroupStatusMuted {
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
|
|
||||||
func GroupIsBanPrivateChat(status int32) bool {
|
|
||||||
if status != GroupBanPrivateChat {
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
|
|
||||||
const LogFileName = "OpenIM.log"
|
|
||||||
|
|
||||||
const LocalHost = "0.0.0.0"
|
|
||||||
|
|
||||||
// flag parse.
|
|
||||||
const (
|
|
||||||
FlagPort = "port"
|
|
||||||
FlagWsPort = "ws_port"
|
|
||||||
|
|
||||||
FlagPrometheusPort = "prometheus_port"
|
|
||||||
FlagConf = "config_folder_path"
|
|
||||||
)
|
|
||||||
|
|
||||||
const OpenIMCommonConfigKey = "OpenIMServerConfig"
|
|
||||||
|
|
||||||
const CallbackCommand = "command"
|
|
||||||
|
|
||||||
const BatchNum = 100
|
|
@ -1,21 +0,0 @@
|
|||||||
// Copyright © 2023 OpenIM. All rights reserved.
|
|
||||||
//
|
|
||||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
// you may not use this file except in compliance with the License.
|
|
||||||
// You may obtain a copy of the License at
|
|
||||||
//
|
|
||||||
// http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
//
|
|
||||||
// Unless required by applicable law or agreed to in writing, software
|
|
||||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
// See the License for the specific language governing permissions and
|
|
||||||
// limitations under the License.
|
|
||||||
|
|
||||||
package constant
|
|
||||||
|
|
||||||
const (
|
|
||||||
ShowNumber = 1000
|
|
||||||
StatisticsTimeInterval = 60
|
|
||||||
MaxNotificationNum = 500
|
|
||||||
)
|
|
@ -1,109 +0,0 @@
|
|||||||
// Copyright © 2023 OpenIM. All rights reserved.
|
|
||||||
//
|
|
||||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
// you may not use this file except in compliance with the License.
|
|
||||||
// You may obtain a copy of the License at
|
|
||||||
//
|
|
||||||
// http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
//
|
|
||||||
// Unless required by applicable law or agreed to in writing, software
|
|
||||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
// See the License for the specific language governing permissions and
|
|
||||||
// limitations under the License.
|
|
||||||
|
|
||||||
package constant
|
|
||||||
|
|
||||||
// fixme 1<--->IOS 2<--->Android 3<--->Windows
|
|
||||||
// fixme 4<--->OSX 5<--->Web 6<--->MiniWeb 7<--->Linux.
|
|
||||||
const (
|
|
||||||
// Platform ID.
|
|
||||||
IOSPlatformID = 1
|
|
||||||
AndroidPlatformID = 2
|
|
||||||
WindowsPlatformID = 3
|
|
||||||
OSXPlatformID = 4
|
|
||||||
WebPlatformID = 5
|
|
||||||
MiniWebPlatformID = 6
|
|
||||||
LinuxPlatformID = 7
|
|
||||||
AndroidPadPlatformID = 8
|
|
||||||
IPadPlatformID = 9
|
|
||||||
AdminPlatformID = 10
|
|
||||||
|
|
||||||
// Platform string match to Platform ID.
|
|
||||||
IOSPlatformStr = "IOS"
|
|
||||||
AndroidPlatformStr = "Android"
|
|
||||||
WindowsPlatformStr = "Windows"
|
|
||||||
OSXPlatformStr = "OSX"
|
|
||||||
WebPlatformStr = "Web"
|
|
||||||
MiniWebPlatformStr = "MiniWeb"
|
|
||||||
LinuxPlatformStr = "Linux"
|
|
||||||
AndroidPadPlatformStr = "APad"
|
|
||||||
IPadPlatformStr = "IPad"
|
|
||||||
AdminPlatformStr = "Admin"
|
|
||||||
|
|
||||||
// terminal types.
|
|
||||||
TerminalPC = "PC"
|
|
||||||
TerminalMobile = "Mobile"
|
|
||||||
)
|
|
||||||
|
|
||||||
var PlatformID2Name = map[int]string{
|
|
||||||
IOSPlatformID: IOSPlatformStr,
|
|
||||||
AndroidPlatformID: AndroidPlatformStr,
|
|
||||||
WindowsPlatformID: WindowsPlatformStr,
|
|
||||||
OSXPlatformID: OSXPlatformStr,
|
|
||||||
WebPlatformID: WebPlatformStr,
|
|
||||||
MiniWebPlatformID: MiniWebPlatformStr,
|
|
||||||
LinuxPlatformID: LinuxPlatformStr,
|
|
||||||
AndroidPadPlatformID: AndroidPadPlatformStr,
|
|
||||||
IPadPlatformID: IPadPlatformStr,
|
|
||||||
AdminPlatformID: AdminPlatformStr,
|
|
||||||
}
|
|
||||||
|
|
||||||
var PlatformName2ID = map[string]int{
|
|
||||||
IOSPlatformStr: IOSPlatformID,
|
|
||||||
AndroidPlatformStr: AndroidPlatformID,
|
|
||||||
WindowsPlatformStr: WindowsPlatformID,
|
|
||||||
OSXPlatformStr: OSXPlatformID,
|
|
||||||
WebPlatformStr: WebPlatformID,
|
|
||||||
MiniWebPlatformStr: MiniWebPlatformID,
|
|
||||||
LinuxPlatformStr: LinuxPlatformID,
|
|
||||||
AndroidPadPlatformStr: AndroidPadPlatformID,
|
|
||||||
IPadPlatformStr: IPadPlatformID,
|
|
||||||
AdminPlatformStr: AdminPlatformID,
|
|
||||||
}
|
|
||||||
|
|
||||||
var PlatformName2class = map[string]string{
|
|
||||||
IOSPlatformStr: TerminalMobile,
|
|
||||||
AndroidPlatformStr: TerminalMobile,
|
|
||||||
MiniWebPlatformStr: WebPlatformStr,
|
|
||||||
WebPlatformStr: WebPlatformStr,
|
|
||||||
WindowsPlatformStr: TerminalPC,
|
|
||||||
OSXPlatformStr: TerminalPC,
|
|
||||||
LinuxPlatformStr: TerminalPC,
|
|
||||||
}
|
|
||||||
|
|
||||||
var PlatformID2class = map[int]string{
|
|
||||||
IOSPlatformID: TerminalMobile,
|
|
||||||
AndroidPlatformID: TerminalMobile,
|
|
||||||
MiniWebPlatformID: WebPlatformStr,
|
|
||||||
WebPlatformID: WebPlatformStr,
|
|
||||||
WindowsPlatformID: TerminalPC,
|
|
||||||
OSXPlatformID: TerminalPC,
|
|
||||||
LinuxPlatformID: TerminalPC,
|
|
||||||
}
|
|
||||||
|
|
||||||
func PlatformIDToName(num int) string {
|
|
||||||
return PlatformID2Name[num]
|
|
||||||
}
|
|
||||||
|
|
||||||
func PlatformNameToID(name string) int {
|
|
||||||
return PlatformName2ID[name]
|
|
||||||
}
|
|
||||||
|
|
||||||
func PlatformNameToClass(name string) string {
|
|
||||||
return PlatformName2class[name]
|
|
||||||
}
|
|
||||||
|
|
||||||
func PlatformIDToClass(num int) string {
|
|
||||||
return PlatformID2class[num]
|
|
||||||
}
|
|
Loading…
Reference in new issue