mirror of
https://github.com/openimsdk/open-im-server.git
synced 2025-04-06 04:15:46 +08:00
Adjust error code
This commit is contained in:
parent
4c53023ebc
commit
6a19c8130c
@ -150,7 +150,7 @@ func ParseToken(c *gin.Context) {
|
|||||||
if err := c.BindJSON(¶ms); err != nil {
|
if err := c.BindJSON(¶ms); err != nil {
|
||||||
errMsg := " BindJSON failed " + err.Error()
|
errMsg := " BindJSON failed " + err.Error()
|
||||||
log.NewError("0", errMsg)
|
log.NewError("0", errMsg)
|
||||||
c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": errMsg})
|
c.JSON(http.StatusBadRequest, gin.H{"errCode": 200, "errMsg": errMsg})
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -161,7 +161,7 @@ func ParseToken(c *gin.Context) {
|
|||||||
if !ok {
|
if !ok {
|
||||||
errMsg := params.OperationID + " " + "GetUserIDFromTokenExpireTime failed " + errInfo + " token:" + c.Request.Header.Get("token")
|
errMsg := params.OperationID + " " + "GetUserIDFromTokenExpireTime failed " + errInfo + " token:" + c.Request.Header.Get("token")
|
||||||
log.NewError(params.OperationID, errMsg)
|
log.NewError(params.OperationID, errMsg)
|
||||||
c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg})
|
c.JSON(http.StatusInternalServerError, gin.H{"errCode": 200, "errMsg": errMsg})
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -52,6 +52,9 @@ func (ws *WServer) msgParse(conn *UserConn, binaryMsg []byte) {
|
|||||||
case constant.WSPullMsgBySeqList:
|
case constant.WSPullMsgBySeqList:
|
||||||
log.NewInfo(m.OperationID, "pullMsgBySeqListReq ", m.SendID, m.MsgIncr, m.ReqIdentifier)
|
log.NewInfo(m.OperationID, "pullMsgBySeqListReq ", m.SendID, m.MsgIncr, m.ReqIdentifier)
|
||||||
ws.pullMsgBySeqListReq(conn, &m)
|
ws.pullMsgBySeqListReq(conn, &m)
|
||||||
|
case constant.WsLogoutMsg:
|
||||||
|
log.NewInfo(m.OperationID, "conn.Close()", m.SendID, m.MsgIncr, m.ReqIdentifier)
|
||||||
|
conn.Close()
|
||||||
default:
|
default:
|
||||||
log.Error(m.OperationID, "ReqIdentifier failed ", m.SendID, m.MsgIncr, m.ReqIdentifier)
|
log.Error(m.OperationID, "ReqIdentifier failed ", m.SendID, m.MsgIncr, m.ReqIdentifier)
|
||||||
}
|
}
|
||||||
|
@ -28,6 +28,7 @@ type RPCServer struct {
|
|||||||
etcdAddr []string
|
etcdAddr []string
|
||||||
platformList []int
|
platformList []int
|
||||||
pushTerminal []int
|
pushTerminal []int
|
||||||
|
target string
|
||||||
}
|
}
|
||||||
|
|
||||||
func (r *RPCServer) onInit(rpcPort int) {
|
func (r *RPCServer) onInit(rpcPort int) {
|
||||||
@ -66,6 +67,7 @@ func (r *RPCServer) run() {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
log.Error("", "register push message rpc to etcd err", "", "err", err.Error(), r.etcdSchema, strings.Join(r.etcdAddr, ","), rpcRegisterIP, r.rpcPort, r.rpcRegisterName)
|
log.Error("", "register push message rpc to etcd err", "", "err", err.Error(), r.etcdSchema, strings.Join(r.etcdAddr, ","), rpcRegisterIP, r.rpcPort, r.rpcRegisterName)
|
||||||
}
|
}
|
||||||
|
r.target = getcdv3.GetTarget(r.etcdSchema, rpcRegisterIP, r.rpcPort, r.rpcRegisterName)
|
||||||
err = srv.Serve(listener)
|
err = srv.Serve(listener)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Error("", "push message rpc listening err", "", "err", err.Error())
|
log.Error("", "push message rpc listening err", "", "err", err.Error())
|
||||||
@ -301,6 +303,11 @@ func (r *RPCServer) KickUserOffline(_ context.Context, req *pbRelay.KickUserOffl
|
|||||||
return &pbRelay.KickUserOfflineResp{}, nil
|
return &pbRelay.KickUserOfflineResp{}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (r *RPCServer) MultiTerminalLoginCheck(ctx context.Context, req *pbRelay.MultiTerminalLoginCheckReq) (*pbRelay.MultiTerminalLoginCheckResp, error) {
|
||||||
|
ws.MultiTerminalLoginCheckerWithLock(req.UserID, int(req.PlatformID), req.Token, req.OperationID)
|
||||||
|
return &pbRelay.MultiTerminalLoginCheckResp{}, nil
|
||||||
|
}
|
||||||
|
|
||||||
func sendMsgToUser(conn *UserConn, bMsg []byte, in *pbRelay.OnlinePushMsgReq, RecvPlatForm int, RecvID string) (ResultCode int64) {
|
func sendMsgToUser(conn *UserConn, bMsg []byte, in *pbRelay.OnlinePushMsgReq, RecvPlatForm int, RecvID string) (ResultCode int64) {
|
||||||
err := ws.writeMsg(conn, websocket.BinaryMessage, bMsg)
|
err := ws.writeMsg(conn, websocket.BinaryMessage, bMsg)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -6,11 +6,15 @@ import (
|
|||||||
"Open_IM/pkg/common/db"
|
"Open_IM/pkg/common/db"
|
||||||
"Open_IM/pkg/common/log"
|
"Open_IM/pkg/common/log"
|
||||||
"Open_IM/pkg/common/token_verify"
|
"Open_IM/pkg/common/token_verify"
|
||||||
|
"Open_IM/pkg/grpc-etcdv3/getcdv3"
|
||||||
|
pbRelay "Open_IM/pkg/proto/relay"
|
||||||
"Open_IM/pkg/utils"
|
"Open_IM/pkg/utils"
|
||||||
"bytes"
|
"bytes"
|
||||||
|
"context"
|
||||||
"encoding/gob"
|
"encoding/gob"
|
||||||
go_redis "github.com/go-redis/redis/v8"
|
go_redis "github.com/go-redis/redis/v8"
|
||||||
"github.com/pkg/errors"
|
"github.com/pkg/errors"
|
||||||
|
"strings"
|
||||||
|
|
||||||
//"gopkg.in/errgo.v2/errors"
|
//"gopkg.in/errgo.v2/errors"
|
||||||
"net/http"
|
"net/http"
|
||||||
@ -113,6 +117,79 @@ func (ws *WServer) SetWriteTimeoutWriteMsg(conn *UserConn, a int, msg []byte, ti
|
|||||||
conn.SetWriteDeadline(time.Now().Add(time.Duration(timeout) * time.Second))
|
conn.SetWriteDeadline(time.Now().Add(time.Duration(timeout) * time.Second))
|
||||||
return conn.WriteMessage(a, msg)
|
return conn.WriteMessage(a, msg)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (ws *WServer) MultiTerminalLoginRemoteChecker(userID string, platformID int32, token string, operationID string) {
|
||||||
|
grpcCons := getcdv3.GetConn4Unique(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImRelayName)
|
||||||
|
for _, v := range grpcCons {
|
||||||
|
if v.Target() == rpcSvr.target {
|
||||||
|
log.Debug(operationID, "Filter out this node ", rpcSvr.target)
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
client := pbRelay.NewRelayClient(v)
|
||||||
|
req := &pbRelay.MultiTerminalLoginCheckReq{OperationID: operationID, PlatformID: platformID, UserID: userID, Token: token}
|
||||||
|
log.NewInfo(operationID, "MultiTerminalLoginCheckReq ", client, req.String())
|
||||||
|
resp, err := client.MultiTerminalLoginCheck(context.Background(), req)
|
||||||
|
if err != nil {
|
||||||
|
log.Error(operationID, "MultiTerminalLoginCheck failed ", err.Error())
|
||||||
|
}
|
||||||
|
if resp.ErrCode != 0 {
|
||||||
|
log.Error(operationID, "MultiTerminalLoginCheck errCode, errMsg: ", resp.ErrCode, resp.ErrMsg)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (ws *WServer) MultiTerminalLoginCheckerWithLock(uid string, platformID int, token string, operationID string) {
|
||||||
|
rwLock.Lock()
|
||||||
|
defer rwLock.Unlock()
|
||||||
|
switch config.Config.MultiLoginPolicy {
|
||||||
|
case constant.AllLoginButSameTermKick:
|
||||||
|
if oldConnMap, ok := ws.wsUserToConn[uid]; ok { // user->map[platform->conn]
|
||||||
|
if oldConn, ok := oldConnMap[platformID]; ok {
|
||||||
|
log.NewDebug(operationID, uid, platformID, "kick old conn")
|
||||||
|
m, err := db.DB.GetTokenMapByUidPid(uid, constant.PlatformIDToName(platformID))
|
||||||
|
if err != nil && err != go_redis.Nil {
|
||||||
|
log.NewError(operationID, "get token from redis err", err.Error(), uid, constant.PlatformIDToName(platformID))
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if m == nil {
|
||||||
|
log.NewError(operationID, "get token from redis err", "m is nil", uid, constant.PlatformIDToName(platformID))
|
||||||
|
return
|
||||||
|
}
|
||||||
|
log.NewDebug(operationID, "get token map is ", m, uid, constant.PlatformIDToName(platformID))
|
||||||
|
|
||||||
|
for k, _ := range m {
|
||||||
|
if k != token {
|
||||||
|
m[k] = constant.KickedToken
|
||||||
|
}
|
||||||
|
}
|
||||||
|
log.NewDebug(operationID, "set token map is ", m, uid, constant.PlatformIDToName(platformID))
|
||||||
|
err = db.DB.SetTokenMapByUidPid(uid, platformID, m)
|
||||||
|
if err != nil {
|
||||||
|
log.NewError(operationID, "SetTokenMapByUidPid err", err.Error(), uid, platformID, m)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
err = oldConn.Close()
|
||||||
|
delete(oldConnMap, platformID)
|
||||||
|
ws.wsUserToConn[uid] = oldConnMap
|
||||||
|
if len(oldConnMap) == 0 {
|
||||||
|
delete(ws.wsUserToConn, uid)
|
||||||
|
}
|
||||||
|
delete(ws.wsConnToUser, oldConn)
|
||||||
|
if err != nil {
|
||||||
|
log.NewError(operationID, "conn close err", err.Error(), uid, platformID)
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
log.NewWarn(operationID, "abnormal uid-conn ", uid, platformID, oldConnMap[platformID])
|
||||||
|
}
|
||||||
|
|
||||||
|
} else {
|
||||||
|
log.NewDebug(operationID, "no other conn", ws.wsUserToConn, uid, platformID)
|
||||||
|
}
|
||||||
|
case constant.SingleTerminalLogin:
|
||||||
|
case constant.WebAndOther:
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func (ws *WServer) MultiTerminalLoginChecker(uid string, platformID int, newConn *UserConn, token string, operationID string) {
|
func (ws *WServer) MultiTerminalLoginChecker(uid string, platformID int, newConn *UserConn, token string, operationID string) {
|
||||||
switch config.Config.MultiLoginPolicy {
|
switch config.Config.MultiLoginPolicy {
|
||||||
case constant.AllLoginButSameTermKick:
|
case constant.AllLoginButSameTermKick:
|
||||||
@ -191,6 +268,7 @@ func (ws *WServer) addUserConn(uid string, platformID int, conn *UserConn, token
|
|||||||
if callbackResp.ErrCode != 0 {
|
if callbackResp.ErrCode != 0 {
|
||||||
log.NewError(operationID, utils.GetSelfFuncName(), "callbackUserOnline resp:", callbackResp)
|
log.NewError(operationID, utils.GetSelfFuncName(), "callbackUserOnline resp:", callbackResp)
|
||||||
}
|
}
|
||||||
|
go ws.MultiTerminalLoginRemoteChecker(uid, int32(platformID), token, operationID)
|
||||||
ws.MultiTerminalLoginChecker(uid, platformID, conn, token, operationID)
|
ws.MultiTerminalLoginChecker(uid, platformID, conn, token, operationID)
|
||||||
if oldConnMap, ok := ws.wsUserToConn[uid]; ok {
|
if oldConnMap, ok := ws.wsUserToConn[uid]; ok {
|
||||||
oldConnMap[platformID] = conn
|
oldConnMap[platformID] = conn
|
||||||
|
@ -37,6 +37,11 @@ func RegisterEtcd4Unique(schema, etcdAddr, myHost string, myPort int, serviceNam
|
|||||||
return RegisterEtcd(schema, etcdAddr, myHost, myPort, serviceName, ttl)
|
return RegisterEtcd(schema, etcdAddr, myHost, myPort, serviceName, ttl)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func GetTarget(schema, myHost string, myPort int, serviceName string) string {
|
||||||
|
serviceName = serviceName + ":" + net.JoinHostPort(myHost, strconv.Itoa(myPort))
|
||||||
|
return serviceName
|
||||||
|
}
|
||||||
|
|
||||||
//etcdAddr separated by commas
|
//etcdAddr separated by commas
|
||||||
func RegisterEtcd(schema, etcdAddr, myHost string, myPort int, serviceName string, ttl int) error {
|
func RegisterEtcd(schema, etcdAddr, myHost string, myPort int, serviceName string, ttl int) error {
|
||||||
operationID := utils.OperationIDGenerator()
|
operationID := utils.OperationIDGenerator()
|
||||||
|
@ -37,7 +37,7 @@ func (m *OnlinePushMsgReq) Reset() { *m = OnlinePushMsgReq{} }
|
|||||||
func (m *OnlinePushMsgReq) String() string { return proto.CompactTextString(m) }
|
func (m *OnlinePushMsgReq) String() string { return proto.CompactTextString(m) }
|
||||||
func (*OnlinePushMsgReq) ProtoMessage() {}
|
func (*OnlinePushMsgReq) ProtoMessage() {}
|
||||||
func (*OnlinePushMsgReq) Descriptor() ([]byte, []int) {
|
func (*OnlinePushMsgReq) Descriptor() ([]byte, []int) {
|
||||||
return fileDescriptor_relay_9ac412c3c8c99f28, []int{0}
|
return fileDescriptor_relay_e9fd8824fb6cabec, []int{0}
|
||||||
}
|
}
|
||||||
func (m *OnlinePushMsgReq) XXX_Unmarshal(b []byte) error {
|
func (m *OnlinePushMsgReq) XXX_Unmarshal(b []byte) error {
|
||||||
return xxx_messageInfo_OnlinePushMsgReq.Unmarshal(m, b)
|
return xxx_messageInfo_OnlinePushMsgReq.Unmarshal(m, b)
|
||||||
@ -89,7 +89,7 @@ func (m *OnlinePushMsgResp) Reset() { *m = OnlinePushMsgResp{} }
|
|||||||
func (m *OnlinePushMsgResp) String() string { return proto.CompactTextString(m) }
|
func (m *OnlinePushMsgResp) String() string { return proto.CompactTextString(m) }
|
||||||
func (*OnlinePushMsgResp) ProtoMessage() {}
|
func (*OnlinePushMsgResp) ProtoMessage() {}
|
||||||
func (*OnlinePushMsgResp) Descriptor() ([]byte, []int) {
|
func (*OnlinePushMsgResp) Descriptor() ([]byte, []int) {
|
||||||
return fileDescriptor_relay_9ac412c3c8c99f28, []int{1}
|
return fileDescriptor_relay_e9fd8824fb6cabec, []int{1}
|
||||||
}
|
}
|
||||||
func (m *OnlinePushMsgResp) XXX_Unmarshal(b []byte) error {
|
func (m *OnlinePushMsgResp) XXX_Unmarshal(b []byte) error {
|
||||||
return xxx_messageInfo_OnlinePushMsgResp.Unmarshal(m, b)
|
return xxx_messageInfo_OnlinePushMsgResp.Unmarshal(m, b)
|
||||||
@ -129,7 +129,7 @@ func (m *SingelMsgToUserResultList) Reset() { *m = SingelMsgToUserResult
|
|||||||
func (m *SingelMsgToUserResultList) String() string { return proto.CompactTextString(m) }
|
func (m *SingelMsgToUserResultList) String() string { return proto.CompactTextString(m) }
|
||||||
func (*SingelMsgToUserResultList) ProtoMessage() {}
|
func (*SingelMsgToUserResultList) ProtoMessage() {}
|
||||||
func (*SingelMsgToUserResultList) Descriptor() ([]byte, []int) {
|
func (*SingelMsgToUserResultList) Descriptor() ([]byte, []int) {
|
||||||
return fileDescriptor_relay_9ac412c3c8c99f28, []int{2}
|
return fileDescriptor_relay_e9fd8824fb6cabec, []int{2}
|
||||||
}
|
}
|
||||||
func (m *SingelMsgToUserResultList) XXX_Unmarshal(b []byte) error {
|
func (m *SingelMsgToUserResultList) XXX_Unmarshal(b []byte) error {
|
||||||
return xxx_messageInfo_SingelMsgToUserResultList.Unmarshal(m, b)
|
return xxx_messageInfo_SingelMsgToUserResultList.Unmarshal(m, b)
|
||||||
@ -183,7 +183,7 @@ func (m *OnlineBatchPushOneMsgReq) Reset() { *m = OnlineBatchPushOneMsgR
|
|||||||
func (m *OnlineBatchPushOneMsgReq) String() string { return proto.CompactTextString(m) }
|
func (m *OnlineBatchPushOneMsgReq) String() string { return proto.CompactTextString(m) }
|
||||||
func (*OnlineBatchPushOneMsgReq) ProtoMessage() {}
|
func (*OnlineBatchPushOneMsgReq) ProtoMessage() {}
|
||||||
func (*OnlineBatchPushOneMsgReq) Descriptor() ([]byte, []int) {
|
func (*OnlineBatchPushOneMsgReq) Descriptor() ([]byte, []int) {
|
||||||
return fileDescriptor_relay_9ac412c3c8c99f28, []int{3}
|
return fileDescriptor_relay_e9fd8824fb6cabec, []int{3}
|
||||||
}
|
}
|
||||||
func (m *OnlineBatchPushOneMsgReq) XXX_Unmarshal(b []byte) error {
|
func (m *OnlineBatchPushOneMsgReq) XXX_Unmarshal(b []byte) error {
|
||||||
return xxx_messageInfo_OnlineBatchPushOneMsgReq.Unmarshal(m, b)
|
return xxx_messageInfo_OnlineBatchPushOneMsgReq.Unmarshal(m, b)
|
||||||
@ -235,7 +235,7 @@ func (m *OnlineBatchPushOneMsgResp) Reset() { *m = OnlineBatchPushOneMsg
|
|||||||
func (m *OnlineBatchPushOneMsgResp) String() string { return proto.CompactTextString(m) }
|
func (m *OnlineBatchPushOneMsgResp) String() string { return proto.CompactTextString(m) }
|
||||||
func (*OnlineBatchPushOneMsgResp) ProtoMessage() {}
|
func (*OnlineBatchPushOneMsgResp) ProtoMessage() {}
|
||||||
func (*OnlineBatchPushOneMsgResp) Descriptor() ([]byte, []int) {
|
func (*OnlineBatchPushOneMsgResp) Descriptor() ([]byte, []int) {
|
||||||
return fileDescriptor_relay_9ac412c3c8c99f28, []int{4}
|
return fileDescriptor_relay_e9fd8824fb6cabec, []int{4}
|
||||||
}
|
}
|
||||||
func (m *OnlineBatchPushOneMsgResp) XXX_Unmarshal(b []byte) error {
|
func (m *OnlineBatchPushOneMsgResp) XXX_Unmarshal(b []byte) error {
|
||||||
return xxx_messageInfo_OnlineBatchPushOneMsgResp.Unmarshal(m, b)
|
return xxx_messageInfo_OnlineBatchPushOneMsgResp.Unmarshal(m, b)
|
||||||
@ -275,7 +275,7 @@ func (m *SingleMsgToUserPlatform) Reset() { *m = SingleMsgToUserPlatform
|
|||||||
func (m *SingleMsgToUserPlatform) String() string { return proto.CompactTextString(m) }
|
func (m *SingleMsgToUserPlatform) String() string { return proto.CompactTextString(m) }
|
||||||
func (*SingleMsgToUserPlatform) ProtoMessage() {}
|
func (*SingleMsgToUserPlatform) ProtoMessage() {}
|
||||||
func (*SingleMsgToUserPlatform) Descriptor() ([]byte, []int) {
|
func (*SingleMsgToUserPlatform) Descriptor() ([]byte, []int) {
|
||||||
return fileDescriptor_relay_9ac412c3c8c99f28, []int{5}
|
return fileDescriptor_relay_e9fd8824fb6cabec, []int{5}
|
||||||
}
|
}
|
||||||
func (m *SingleMsgToUserPlatform) XXX_Unmarshal(b []byte) error {
|
func (m *SingleMsgToUserPlatform) XXX_Unmarshal(b []byte) error {
|
||||||
return xxx_messageInfo_SingleMsgToUserPlatform.Unmarshal(m, b)
|
return xxx_messageInfo_SingleMsgToUserPlatform.Unmarshal(m, b)
|
||||||
@ -329,7 +329,7 @@ func (m *GetUsersOnlineStatusReq) Reset() { *m = GetUsersOnlineStatusReq
|
|||||||
func (m *GetUsersOnlineStatusReq) String() string { return proto.CompactTextString(m) }
|
func (m *GetUsersOnlineStatusReq) String() string { return proto.CompactTextString(m) }
|
||||||
func (*GetUsersOnlineStatusReq) ProtoMessage() {}
|
func (*GetUsersOnlineStatusReq) ProtoMessage() {}
|
||||||
func (*GetUsersOnlineStatusReq) Descriptor() ([]byte, []int) {
|
func (*GetUsersOnlineStatusReq) Descriptor() ([]byte, []int) {
|
||||||
return fileDescriptor_relay_9ac412c3c8c99f28, []int{6}
|
return fileDescriptor_relay_e9fd8824fb6cabec, []int{6}
|
||||||
}
|
}
|
||||||
func (m *GetUsersOnlineStatusReq) XXX_Unmarshal(b []byte) error {
|
func (m *GetUsersOnlineStatusReq) XXX_Unmarshal(b []byte) error {
|
||||||
return xxx_messageInfo_GetUsersOnlineStatusReq.Unmarshal(m, b)
|
return xxx_messageInfo_GetUsersOnlineStatusReq.Unmarshal(m, b)
|
||||||
@ -384,7 +384,7 @@ func (m *GetUsersOnlineStatusResp) Reset() { *m = GetUsersOnlineStatusRe
|
|||||||
func (m *GetUsersOnlineStatusResp) String() string { return proto.CompactTextString(m) }
|
func (m *GetUsersOnlineStatusResp) String() string { return proto.CompactTextString(m) }
|
||||||
func (*GetUsersOnlineStatusResp) ProtoMessage() {}
|
func (*GetUsersOnlineStatusResp) ProtoMessage() {}
|
||||||
func (*GetUsersOnlineStatusResp) Descriptor() ([]byte, []int) {
|
func (*GetUsersOnlineStatusResp) Descriptor() ([]byte, []int) {
|
||||||
return fileDescriptor_relay_9ac412c3c8c99f28, []int{7}
|
return fileDescriptor_relay_e9fd8824fb6cabec, []int{7}
|
||||||
}
|
}
|
||||||
func (m *GetUsersOnlineStatusResp) XXX_Unmarshal(b []byte) error {
|
func (m *GetUsersOnlineStatusResp) XXX_Unmarshal(b []byte) error {
|
||||||
return xxx_messageInfo_GetUsersOnlineStatusResp.Unmarshal(m, b)
|
return xxx_messageInfo_GetUsersOnlineStatusResp.Unmarshal(m, b)
|
||||||
@ -446,7 +446,7 @@ func (m *GetUsersOnlineStatusResp_SuccessDetail) Reset() {
|
|||||||
func (m *GetUsersOnlineStatusResp_SuccessDetail) String() string { return proto.CompactTextString(m) }
|
func (m *GetUsersOnlineStatusResp_SuccessDetail) String() string { return proto.CompactTextString(m) }
|
||||||
func (*GetUsersOnlineStatusResp_SuccessDetail) ProtoMessage() {}
|
func (*GetUsersOnlineStatusResp_SuccessDetail) ProtoMessage() {}
|
||||||
func (*GetUsersOnlineStatusResp_SuccessDetail) Descriptor() ([]byte, []int) {
|
func (*GetUsersOnlineStatusResp_SuccessDetail) Descriptor() ([]byte, []int) {
|
||||||
return fileDescriptor_relay_9ac412c3c8c99f28, []int{7, 0}
|
return fileDescriptor_relay_e9fd8824fb6cabec, []int{7, 0}
|
||||||
}
|
}
|
||||||
func (m *GetUsersOnlineStatusResp_SuccessDetail) XXX_Unmarshal(b []byte) error {
|
func (m *GetUsersOnlineStatusResp_SuccessDetail) XXX_Unmarshal(b []byte) error {
|
||||||
return xxx_messageInfo_GetUsersOnlineStatusResp_SuccessDetail.Unmarshal(m, b)
|
return xxx_messageInfo_GetUsersOnlineStatusResp_SuccessDetail.Unmarshal(m, b)
|
||||||
@ -493,7 +493,7 @@ func (m *GetUsersOnlineStatusResp_FailedDetail) Reset() { *m = GetUsersO
|
|||||||
func (m *GetUsersOnlineStatusResp_FailedDetail) String() string { return proto.CompactTextString(m) }
|
func (m *GetUsersOnlineStatusResp_FailedDetail) String() string { return proto.CompactTextString(m) }
|
||||||
func (*GetUsersOnlineStatusResp_FailedDetail) ProtoMessage() {}
|
func (*GetUsersOnlineStatusResp_FailedDetail) ProtoMessage() {}
|
||||||
func (*GetUsersOnlineStatusResp_FailedDetail) Descriptor() ([]byte, []int) {
|
func (*GetUsersOnlineStatusResp_FailedDetail) Descriptor() ([]byte, []int) {
|
||||||
return fileDescriptor_relay_9ac412c3c8c99f28, []int{7, 1}
|
return fileDescriptor_relay_e9fd8824fb6cabec, []int{7, 1}
|
||||||
}
|
}
|
||||||
func (m *GetUsersOnlineStatusResp_FailedDetail) XXX_Unmarshal(b []byte) error {
|
func (m *GetUsersOnlineStatusResp_FailedDetail) XXX_Unmarshal(b []byte) error {
|
||||||
return xxx_messageInfo_GetUsersOnlineStatusResp_FailedDetail.Unmarshal(m, b)
|
return xxx_messageInfo_GetUsersOnlineStatusResp_FailedDetail.Unmarshal(m, b)
|
||||||
@ -549,7 +549,7 @@ func (m *GetUsersOnlineStatusResp_SuccessResult) Reset() {
|
|||||||
func (m *GetUsersOnlineStatusResp_SuccessResult) String() string { return proto.CompactTextString(m) }
|
func (m *GetUsersOnlineStatusResp_SuccessResult) String() string { return proto.CompactTextString(m) }
|
||||||
func (*GetUsersOnlineStatusResp_SuccessResult) ProtoMessage() {}
|
func (*GetUsersOnlineStatusResp_SuccessResult) ProtoMessage() {}
|
||||||
func (*GetUsersOnlineStatusResp_SuccessResult) Descriptor() ([]byte, []int) {
|
func (*GetUsersOnlineStatusResp_SuccessResult) Descriptor() ([]byte, []int) {
|
||||||
return fileDescriptor_relay_9ac412c3c8c99f28, []int{7, 2}
|
return fileDescriptor_relay_e9fd8824fb6cabec, []int{7, 2}
|
||||||
}
|
}
|
||||||
func (m *GetUsersOnlineStatusResp_SuccessResult) XXX_Unmarshal(b []byte) error {
|
func (m *GetUsersOnlineStatusResp_SuccessResult) XXX_Unmarshal(b []byte) error {
|
||||||
return xxx_messageInfo_GetUsersOnlineStatusResp_SuccessResult.Unmarshal(m, b)
|
return xxx_messageInfo_GetUsersOnlineStatusResp_SuccessResult.Unmarshal(m, b)
|
||||||
@ -603,7 +603,7 @@ func (m *KickUserOfflineReq) Reset() { *m = KickUserOfflineReq{} }
|
|||||||
func (m *KickUserOfflineReq) String() string { return proto.CompactTextString(m) }
|
func (m *KickUserOfflineReq) String() string { return proto.CompactTextString(m) }
|
||||||
func (*KickUserOfflineReq) ProtoMessage() {}
|
func (*KickUserOfflineReq) ProtoMessage() {}
|
||||||
func (*KickUserOfflineReq) Descriptor() ([]byte, []int) {
|
func (*KickUserOfflineReq) Descriptor() ([]byte, []int) {
|
||||||
return fileDescriptor_relay_9ac412c3c8c99f28, []int{8}
|
return fileDescriptor_relay_e9fd8824fb6cabec, []int{8}
|
||||||
}
|
}
|
||||||
func (m *KickUserOfflineReq) XXX_Unmarshal(b []byte) error {
|
func (m *KickUserOfflineReq) XXX_Unmarshal(b []byte) error {
|
||||||
return xxx_messageInfo_KickUserOfflineReq.Unmarshal(m, b)
|
return xxx_messageInfo_KickUserOfflineReq.Unmarshal(m, b)
|
||||||
@ -654,7 +654,7 @@ func (m *KickUserOfflineResp) Reset() { *m = KickUserOfflineResp{} }
|
|||||||
func (m *KickUserOfflineResp) String() string { return proto.CompactTextString(m) }
|
func (m *KickUserOfflineResp) String() string { return proto.CompactTextString(m) }
|
||||||
func (*KickUserOfflineResp) ProtoMessage() {}
|
func (*KickUserOfflineResp) ProtoMessage() {}
|
||||||
func (*KickUserOfflineResp) Descriptor() ([]byte, []int) {
|
func (*KickUserOfflineResp) Descriptor() ([]byte, []int) {
|
||||||
return fileDescriptor_relay_9ac412c3c8c99f28, []int{9}
|
return fileDescriptor_relay_e9fd8824fb6cabec, []int{9}
|
||||||
}
|
}
|
||||||
func (m *KickUserOfflineResp) XXX_Unmarshal(b []byte) error {
|
func (m *KickUserOfflineResp) XXX_Unmarshal(b []byte) error {
|
||||||
return xxx_messageInfo_KickUserOfflineResp.Unmarshal(m, b)
|
return xxx_messageInfo_KickUserOfflineResp.Unmarshal(m, b)
|
||||||
@ -674,6 +674,114 @@ func (m *KickUserOfflineResp) XXX_DiscardUnknown() {
|
|||||||
|
|
||||||
var xxx_messageInfo_KickUserOfflineResp proto.InternalMessageInfo
|
var xxx_messageInfo_KickUserOfflineResp proto.InternalMessageInfo
|
||||||
|
|
||||||
|
type MultiTerminalLoginCheckReq struct {
|
||||||
|
UserID string `protobuf:"bytes,1,opt,name=userID" json:"userID,omitempty"`
|
||||||
|
PlatformID int32 `protobuf:"varint,2,opt,name=platformID" json:"platformID,omitempty"`
|
||||||
|
Token string `protobuf:"bytes,3,opt,name=token" json:"token,omitempty"`
|
||||||
|
OperationID string `protobuf:"bytes,4,opt,name=operationID" json:"operationID,omitempty"`
|
||||||
|
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
||||||
|
XXX_unrecognized []byte `json:"-"`
|
||||||
|
XXX_sizecache int32 `json:"-"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *MultiTerminalLoginCheckReq) Reset() { *m = MultiTerminalLoginCheckReq{} }
|
||||||
|
func (m *MultiTerminalLoginCheckReq) String() string { return proto.CompactTextString(m) }
|
||||||
|
func (*MultiTerminalLoginCheckReq) ProtoMessage() {}
|
||||||
|
func (*MultiTerminalLoginCheckReq) Descriptor() ([]byte, []int) {
|
||||||
|
return fileDescriptor_relay_e9fd8824fb6cabec, []int{10}
|
||||||
|
}
|
||||||
|
func (m *MultiTerminalLoginCheckReq) XXX_Unmarshal(b []byte) error {
|
||||||
|
return xxx_messageInfo_MultiTerminalLoginCheckReq.Unmarshal(m, b)
|
||||||
|
}
|
||||||
|
func (m *MultiTerminalLoginCheckReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
||||||
|
return xxx_messageInfo_MultiTerminalLoginCheckReq.Marshal(b, m, deterministic)
|
||||||
|
}
|
||||||
|
func (dst *MultiTerminalLoginCheckReq) XXX_Merge(src proto.Message) {
|
||||||
|
xxx_messageInfo_MultiTerminalLoginCheckReq.Merge(dst, src)
|
||||||
|
}
|
||||||
|
func (m *MultiTerminalLoginCheckReq) XXX_Size() int {
|
||||||
|
return xxx_messageInfo_MultiTerminalLoginCheckReq.Size(m)
|
||||||
|
}
|
||||||
|
func (m *MultiTerminalLoginCheckReq) XXX_DiscardUnknown() {
|
||||||
|
xxx_messageInfo_MultiTerminalLoginCheckReq.DiscardUnknown(m)
|
||||||
|
}
|
||||||
|
|
||||||
|
var xxx_messageInfo_MultiTerminalLoginCheckReq proto.InternalMessageInfo
|
||||||
|
|
||||||
|
func (m *MultiTerminalLoginCheckReq) GetUserID() string {
|
||||||
|
if m != nil {
|
||||||
|
return m.UserID
|
||||||
|
}
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *MultiTerminalLoginCheckReq) GetPlatformID() int32 {
|
||||||
|
if m != nil {
|
||||||
|
return m.PlatformID
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *MultiTerminalLoginCheckReq) GetToken() string {
|
||||||
|
if m != nil {
|
||||||
|
return m.Token
|
||||||
|
}
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *MultiTerminalLoginCheckReq) GetOperationID() string {
|
||||||
|
if m != nil {
|
||||||
|
return m.OperationID
|
||||||
|
}
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
|
||||||
|
type MultiTerminalLoginCheckResp struct {
|
||||||
|
ErrCode int32 `protobuf:"varint,1,opt,name=errCode" json:"errCode,omitempty"`
|
||||||
|
ErrMsg string `protobuf:"bytes,2,opt,name=errMsg" json:"errMsg,omitempty"`
|
||||||
|
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
||||||
|
XXX_unrecognized []byte `json:"-"`
|
||||||
|
XXX_sizecache int32 `json:"-"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *MultiTerminalLoginCheckResp) Reset() { *m = MultiTerminalLoginCheckResp{} }
|
||||||
|
func (m *MultiTerminalLoginCheckResp) String() string { return proto.CompactTextString(m) }
|
||||||
|
func (*MultiTerminalLoginCheckResp) ProtoMessage() {}
|
||||||
|
func (*MultiTerminalLoginCheckResp) Descriptor() ([]byte, []int) {
|
||||||
|
return fileDescriptor_relay_e9fd8824fb6cabec, []int{11}
|
||||||
|
}
|
||||||
|
func (m *MultiTerminalLoginCheckResp) XXX_Unmarshal(b []byte) error {
|
||||||
|
return xxx_messageInfo_MultiTerminalLoginCheckResp.Unmarshal(m, b)
|
||||||
|
}
|
||||||
|
func (m *MultiTerminalLoginCheckResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
||||||
|
return xxx_messageInfo_MultiTerminalLoginCheckResp.Marshal(b, m, deterministic)
|
||||||
|
}
|
||||||
|
func (dst *MultiTerminalLoginCheckResp) XXX_Merge(src proto.Message) {
|
||||||
|
xxx_messageInfo_MultiTerminalLoginCheckResp.Merge(dst, src)
|
||||||
|
}
|
||||||
|
func (m *MultiTerminalLoginCheckResp) XXX_Size() int {
|
||||||
|
return xxx_messageInfo_MultiTerminalLoginCheckResp.Size(m)
|
||||||
|
}
|
||||||
|
func (m *MultiTerminalLoginCheckResp) XXX_DiscardUnknown() {
|
||||||
|
xxx_messageInfo_MultiTerminalLoginCheckResp.DiscardUnknown(m)
|
||||||
|
}
|
||||||
|
|
||||||
|
var xxx_messageInfo_MultiTerminalLoginCheckResp proto.InternalMessageInfo
|
||||||
|
|
||||||
|
func (m *MultiTerminalLoginCheckResp) GetErrCode() int32 {
|
||||||
|
if m != nil {
|
||||||
|
return m.ErrCode
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *MultiTerminalLoginCheckResp) GetErrMsg() string {
|
||||||
|
if m != nil {
|
||||||
|
return m.ErrMsg
|
||||||
|
}
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
proto.RegisterType((*OnlinePushMsgReq)(nil), "relay.OnlinePushMsgReq")
|
proto.RegisterType((*OnlinePushMsgReq)(nil), "relay.OnlinePushMsgReq")
|
||||||
proto.RegisterType((*OnlinePushMsgResp)(nil), "relay.OnlinePushMsgResp")
|
proto.RegisterType((*OnlinePushMsgResp)(nil), "relay.OnlinePushMsgResp")
|
||||||
@ -688,6 +796,8 @@ func init() {
|
|||||||
proto.RegisterType((*GetUsersOnlineStatusResp_SuccessResult)(nil), "relay.GetUsersOnlineStatusResp.SuccessResult")
|
proto.RegisterType((*GetUsersOnlineStatusResp_SuccessResult)(nil), "relay.GetUsersOnlineStatusResp.SuccessResult")
|
||||||
proto.RegisterType((*KickUserOfflineReq)(nil), "relay.KickUserOfflineReq")
|
proto.RegisterType((*KickUserOfflineReq)(nil), "relay.KickUserOfflineReq")
|
||||||
proto.RegisterType((*KickUserOfflineResp)(nil), "relay.KickUserOfflineResp")
|
proto.RegisterType((*KickUserOfflineResp)(nil), "relay.KickUserOfflineResp")
|
||||||
|
proto.RegisterType((*MultiTerminalLoginCheckReq)(nil), "relay.MultiTerminalLoginCheckReq")
|
||||||
|
proto.RegisterType((*MultiTerminalLoginCheckResp)(nil), "relay.MultiTerminalLoginCheckResp")
|
||||||
}
|
}
|
||||||
|
|
||||||
// Reference imports to suppress errors if they are not otherwise used.
|
// Reference imports to suppress errors if they are not otherwise used.
|
||||||
@ -706,6 +816,7 @@ type RelayClient interface {
|
|||||||
OnlineBatchPushOneMsg(ctx context.Context, in *OnlineBatchPushOneMsgReq, opts ...grpc.CallOption) (*OnlineBatchPushOneMsgResp, error)
|
OnlineBatchPushOneMsg(ctx context.Context, in *OnlineBatchPushOneMsgReq, opts ...grpc.CallOption) (*OnlineBatchPushOneMsgResp, error)
|
||||||
SuperGroupOnlineBatchPushOneMsg(ctx context.Context, in *OnlineBatchPushOneMsgReq, opts ...grpc.CallOption) (*OnlineBatchPushOneMsgResp, error)
|
SuperGroupOnlineBatchPushOneMsg(ctx context.Context, in *OnlineBatchPushOneMsgReq, opts ...grpc.CallOption) (*OnlineBatchPushOneMsgResp, error)
|
||||||
KickUserOffline(ctx context.Context, in *KickUserOfflineReq, opts ...grpc.CallOption) (*KickUserOfflineResp, error)
|
KickUserOffline(ctx context.Context, in *KickUserOfflineReq, opts ...grpc.CallOption) (*KickUserOfflineResp, error)
|
||||||
|
MultiTerminalLoginCheck(ctx context.Context, in *MultiTerminalLoginCheckReq, opts ...grpc.CallOption) (*MultiTerminalLoginCheckResp, error)
|
||||||
}
|
}
|
||||||
|
|
||||||
type relayClient struct {
|
type relayClient struct {
|
||||||
@ -761,6 +872,15 @@ func (c *relayClient) KickUserOffline(ctx context.Context, in *KickUserOfflineRe
|
|||||||
return out, nil
|
return out, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (c *relayClient) MultiTerminalLoginCheck(ctx context.Context, in *MultiTerminalLoginCheckReq, opts ...grpc.CallOption) (*MultiTerminalLoginCheckResp, error) {
|
||||||
|
out := new(MultiTerminalLoginCheckResp)
|
||||||
|
err := grpc.Invoke(ctx, "/relay.relay/MultiTerminalLoginCheck", in, out, c.cc, opts...)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return out, nil
|
||||||
|
}
|
||||||
|
|
||||||
// Server API for Relay service
|
// Server API for Relay service
|
||||||
|
|
||||||
type RelayServer interface {
|
type RelayServer interface {
|
||||||
@ -769,6 +889,7 @@ type RelayServer interface {
|
|||||||
OnlineBatchPushOneMsg(context.Context, *OnlineBatchPushOneMsgReq) (*OnlineBatchPushOneMsgResp, error)
|
OnlineBatchPushOneMsg(context.Context, *OnlineBatchPushOneMsgReq) (*OnlineBatchPushOneMsgResp, error)
|
||||||
SuperGroupOnlineBatchPushOneMsg(context.Context, *OnlineBatchPushOneMsgReq) (*OnlineBatchPushOneMsgResp, error)
|
SuperGroupOnlineBatchPushOneMsg(context.Context, *OnlineBatchPushOneMsgReq) (*OnlineBatchPushOneMsgResp, error)
|
||||||
KickUserOffline(context.Context, *KickUserOfflineReq) (*KickUserOfflineResp, error)
|
KickUserOffline(context.Context, *KickUserOfflineReq) (*KickUserOfflineResp, error)
|
||||||
|
MultiTerminalLoginCheck(context.Context, *MultiTerminalLoginCheckReq) (*MultiTerminalLoginCheckResp, error)
|
||||||
}
|
}
|
||||||
|
|
||||||
func RegisterRelayServer(s *grpc.Server, srv RelayServer) {
|
func RegisterRelayServer(s *grpc.Server, srv RelayServer) {
|
||||||
@ -865,6 +986,24 @@ func _Relay_KickUserOffline_Handler(srv interface{}, ctx context.Context, dec fu
|
|||||||
return interceptor(ctx, in, info, handler)
|
return interceptor(ctx, in, info, handler)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func _Relay_MultiTerminalLoginCheck_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
|
||||||
|
in := new(MultiTerminalLoginCheckReq)
|
||||||
|
if err := dec(in); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
if interceptor == nil {
|
||||||
|
return srv.(RelayServer).MultiTerminalLoginCheck(ctx, in)
|
||||||
|
}
|
||||||
|
info := &grpc.UnaryServerInfo{
|
||||||
|
Server: srv,
|
||||||
|
FullMethod: "/relay.relay/MultiTerminalLoginCheck",
|
||||||
|
}
|
||||||
|
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||||
|
return srv.(RelayServer).MultiTerminalLoginCheck(ctx, req.(*MultiTerminalLoginCheckReq))
|
||||||
|
}
|
||||||
|
return interceptor(ctx, in, info, handler)
|
||||||
|
}
|
||||||
|
|
||||||
var _Relay_serviceDesc = grpc.ServiceDesc{
|
var _Relay_serviceDesc = grpc.ServiceDesc{
|
||||||
ServiceName: "relay.relay",
|
ServiceName: "relay.relay",
|
||||||
HandlerType: (*RelayServer)(nil),
|
HandlerType: (*RelayServer)(nil),
|
||||||
@ -889,60 +1028,68 @@ var _Relay_serviceDesc = grpc.ServiceDesc{
|
|||||||
MethodName: "KickUserOffline",
|
MethodName: "KickUserOffline",
|
||||||
Handler: _Relay_KickUserOffline_Handler,
|
Handler: _Relay_KickUserOffline_Handler,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
MethodName: "MultiTerminalLoginCheck",
|
||||||
|
Handler: _Relay_MultiTerminalLoginCheck_Handler,
|
||||||
|
},
|
||||||
},
|
},
|
||||||
Streams: []grpc.StreamDesc{},
|
Streams: []grpc.StreamDesc{},
|
||||||
Metadata: "relay/relay.proto",
|
Metadata: "relay/relay.proto",
|
||||||
}
|
}
|
||||||
|
|
||||||
func init() { proto.RegisterFile("relay/relay.proto", fileDescriptor_relay_9ac412c3c8c99f28) }
|
func init() { proto.RegisterFile("relay/relay.proto", fileDescriptor_relay_e9fd8824fb6cabec) }
|
||||||
|
|
||||||
var fileDescriptor_relay_9ac412c3c8c99f28 = []byte{
|
var fileDescriptor_relay_e9fd8824fb6cabec = []byte{
|
||||||
// 737 bytes of a gzipped FileDescriptorProto
|
// 809 bytes of a gzipped FileDescriptorProto
|
||||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x56, 0xcd, 0x4e, 0xdb, 0x5a,
|
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x56, 0x4d, 0x4f, 0xdb, 0x4c,
|
||||||
0x10, 0x96, 0x31, 0xe1, 0x67, 0x80, 0x0b, 0x9c, 0x0b, 0x17, 0xe3, 0x45, 0xc8, 0xf5, 0xe2, 0x2a,
|
0x10, 0x96, 0x49, 0xc2, 0xc7, 0x00, 0x2f, 0xb0, 0x2f, 0x34, 0xc6, 0x95, 0x42, 0xf0, 0xa1, 0x8a,
|
||||||
0xba, 0x6a, 0x13, 0x29, 0xed, 0xae, 0x3b, 0x88, 0xa0, 0x51, 0x89, 0x82, 0x4e, 0x5a, 0xb5, 0x62,
|
0xaa, 0x36, 0x91, 0xd2, 0xde, 0x7a, 0x83, 0x08, 0x1a, 0x95, 0x28, 0x68, 0x43, 0xd5, 0x8a, 0x4b,
|
||||||
0x13, 0x99, 0xe4, 0x24, 0x58, 0x71, 0xe2, 0xc3, 0x19, 0x1b, 0xc4, 0xa6, 0xdb, 0xee, 0xfa, 0x08,
|
0x6a, 0x92, 0x4d, 0x62, 0xc5, 0xb1, 0x97, 0x5d, 0x1b, 0xc4, 0xa5, 0xd7, 0x5e, 0xaa, 0x1e, 0xfa,
|
||||||
0x5d, 0xf4, 0x09, 0xba, 0xeb, 0xeb, 0x55, 0xe7, 0x27, 0xae, 0x9d, 0x1f, 0x28, 0x0b, 0x36, 0x90,
|
0x03, 0x7a, 0xe8, 0x9f, 0xe8, 0xdf, 0xab, 0xf6, 0x23, 0xa9, 0x9d, 0xc4, 0xa4, 0x54, 0xe2, 0x02,
|
||||||
0x99, 0x33, 0xe7, 0x9b, 0xf9, 0xbe, 0x19, 0x8f, 0x0d, 0xbb, 0x82, 0x85, 0xfe, 0x7d, 0x55, 0xfd,
|
0x99, 0xd9, 0xd9, 0x99, 0x79, 0x9e, 0x79, 0x76, 0xd7, 0xb0, 0xc3, 0x88, 0xe7, 0xdc, 0x55, 0xe4,
|
||||||
0xad, 0x70, 0x11, 0xc5, 0x11, 0x29, 0x28, 0xc3, 0xfd, 0xb7, 0xc5, 0xd9, 0xb8, 0xd3, 0x68, 0x56,
|
0xdf, 0x32, 0x65, 0x41, 0x18, 0xa0, 0x9c, 0x34, 0xac, 0xc3, 0x26, 0x25, 0x7e, 0xbb, 0xde, 0xa8,
|
||||||
0xf9, 0x70, 0x50, 0x55, 0x27, 0x55, 0xec, 0x0d, 0x3b, 0x77, 0x58, 0xbd, 0x43, 0x1d, 0xe9, 0x7d,
|
0xd0, 0x61, 0xbf, 0x22, 0x57, 0x2a, 0xbc, 0x3b, 0x6c, 0xdf, 0xf2, 0xca, 0x2d, 0x57, 0x91, 0xf6,
|
||||||
0xb5, 0x60, 0xa7, 0x35, 0x0e, 0x83, 0x31, 0xbb, 0x48, 0xf0, 0xba, 0x89, 0x03, 0xca, 0x6e, 0x48,
|
0x37, 0x03, 0xb6, 0x9b, 0xbe, 0xe7, 0xfa, 0xe4, 0x3c, 0xe2, 0x83, 0x06, 0xef, 0x63, 0x72, 0x8d,
|
||||||
0x09, 0x36, 0x5a, 0x9c, 0x09, 0x3f, 0x0e, 0xa2, 0x71, 0xa3, 0xee, 0x58, 0x25, 0xab, 0xbc, 0x4e,
|
0x8a, 0xb0, 0xde, 0xa4, 0x84, 0x39, 0xa1, 0x1b, 0xf8, 0xf5, 0x9a, 0x69, 0x14, 0x8d, 0xd2, 0x1a,
|
||||||
0xb3, 0x2e, 0xf2, 0x1a, 0x56, 0x47, 0x38, 0xa8, 0xfb, 0xb1, 0xef, 0x2c, 0x95, 0xac, 0xf2, 0x46,
|
0x8e, 0xbb, 0xd0, 0x6b, 0x58, 0x19, 0xf1, 0x7e, 0xcd, 0x09, 0x1d, 0x73, 0xa9, 0x68, 0x94, 0xd6,
|
||||||
0xcd, 0xad, 0x20, 0x13, 0xb7, 0x4c, 0x74, 0x7c, 0x1e, 0x74, 0xb8, 0x2f, 0xfc, 0x11, 0x56, 0x9a,
|
0xab, 0x56, 0x99, 0x13, 0x76, 0x43, 0x58, 0xdb, 0xa1, 0x6e, 0x9b, 0x3a, 0xcc, 0x19, 0xf1, 0x72,
|
||||||
0x3a, 0x82, 0x4e, 0x42, 0x89, 0x07, 0x9b, 0x3c, 0xc1, 0xeb, 0xf7, 0xd1, 0x07, 0x64, 0xa2, 0x51,
|
0x43, 0x45, 0xe0, 0x71, 0x28, 0xb2, 0x61, 0x83, 0x46, 0x7c, 0x70, 0x11, 0xbc, 0xe7, 0x84, 0xd5,
|
||||||
0x77, 0x6c, 0x05, 0x9c, 0xf3, 0x79, 0x67, 0xb0, 0x3b, 0x55, 0x0f, 0x72, 0x52, 0x83, 0x65, 0xc1,
|
0x6b, 0x66, 0x46, 0x26, 0x4e, 0xf8, 0xec, 0x53, 0xd8, 0x99, 0xea, 0x87, 0x53, 0x54, 0x85, 0x2c,
|
||||||
0x90, 0x3b, 0x56, 0xc9, 0x2e, 0x6f, 0xd4, 0x8a, 0x15, 0xcd, 0xb5, 0x1d, 0x8c, 0x07, 0x21, 0x6b,
|
0x23, 0x9c, 0x9a, 0x46, 0x31, 0x53, 0x5a, 0xaf, 0x16, 0xca, 0x0a, 0x6b, 0xcb, 0xf5, 0xfb, 0x1e,
|
||||||
0xe2, 0x40, 0x5f, 0xbe, 0x08, 0xfd, 0xb8, 0x1f, 0x89, 0x11, 0x55, 0xb1, 0xde, 0x17, 0x0b, 0x0e,
|
0x69, 0xf0, 0xbe, 0xda, 0x7c, 0xee, 0x39, 0x61, 0x2f, 0x60, 0x23, 0x2c, 0x63, 0xed, 0x2f, 0x06,
|
||||||
0x65, 0x04, 0x0b, 0xd3, 0x08, 0xca, 0x30, 0x09, 0xe3, 0xf3, 0x00, 0x63, 0xf2, 0x0f, 0xac, 0x24,
|
0xec, 0x8b, 0x08, 0xe2, 0x4d, 0x22, 0x30, 0xe1, 0x91, 0x17, 0x9e, 0xb9, 0x3c, 0x44, 0x4f, 0x60,
|
||||||
0xba, 0x08, 0xcd, 0xce, 0x58, 0x69, 0xa6, 0xa5, 0x3f, 0xcf, 0x44, 0x8a, 0x00, 0x51, 0x5a, 0xb2,
|
0x39, 0x52, 0x4d, 0x28, 0x74, 0xda, 0x9a, 0x54, 0x5a, 0xfa, 0xfb, 0x4a, 0xa8, 0x00, 0x10, 0x4c,
|
||||||
0x22, 0xb5, 0x46, 0x33, 0x1e, 0xef, 0x9b, 0x05, 0x8e, 0xe6, 0x74, 0xec, 0xc7, 0xdd, 0x6b, 0xe9,
|
0x5a, 0x96, 0xa0, 0x56, 0x71, 0xcc, 0x63, 0xff, 0x30, 0xc0, 0x54, 0x98, 0x8e, 0x9c, 0xb0, 0x33,
|
||||||
0x6b, 0x8d, 0xd9, 0x33, 0x6b, 0xfd, 0x3f, 0xec, 0x64, 0x75, 0x95, 0xa4, 0x1d, 0xbb, 0x64, 0x97,
|
0x10, 0xbe, 0xa6, 0x4f, 0x1e, 0x99, 0xeb, 0xe7, 0xb0, 0x1d, 0xe7, 0x55, 0x80, 0x36, 0x33, 0xc5,
|
||||||
0xd7, 0xe9, 0x8c, 0xdf, 0x0b, 0xe0, 0x70, 0x41, 0x7d, 0xc8, 0xc9, 0x39, 0xec, 0xa0, 0xa2, 0x2f,
|
0x4c, 0x69, 0x0d, 0xcf, 0xf8, 0x6d, 0x17, 0xf6, 0x53, 0xfa, 0xe3, 0x14, 0x9d, 0xc1, 0x36, 0x97,
|
||||||
0xfd, 0x5a, 0x41, 0xd3, 0x87, 0x52, 0x46, 0x9d, 0xb9, 0x2a, 0xd3, 0x99, 0x9b, 0xde, 0x3d, 0x1c,
|
0xf0, 0x85, 0x5f, 0x31, 0xa8, 0xe7, 0x50, 0x8c, 0xb1, 0x33, 0x97, 0x65, 0x3c, 0xb3, 0xd3, 0xbe,
|
||||||
0x2c, 0x10, 0x53, 0xca, 0xa8, 0x83, 0x4e, 0xa2, 0x1e, 0x53, 0x42, 0xd8, 0x34, 0xe3, 0x91, 0x2d,
|
0x83, 0x7c, 0x0a, 0x99, 0x82, 0x46, 0x15, 0x74, 0x1c, 0x74, 0x89, 0x24, 0x22, 0x83, 0x63, 0x1e,
|
||||||
0xa3, 0xac, 0x7b, 0xdb, 0xa8, 0x2b, 0x19, 0xd6, 0xa9, 0xb1, 0xc8, 0x7f, 0xf0, 0x97, 0xfc, 0x25,
|
0x31, 0x32, 0x4c, 0x3a, 0x37, 0xf5, 0x9a, 0xa4, 0x61, 0x0d, 0x6b, 0x0b, 0x3d, 0x83, 0xff, 0xc4,
|
||||||
0x71, 0x4e, 0x23, 0x31, 0x32, 0x73, 0x55, 0xa0, 0x53, 0x5e, 0xef, 0x0e, 0x0e, 0xce, 0x58, 0x2c,
|
0x2f, 0x91, 0xe7, 0x24, 0x60, 0x23, 0xad, 0xab, 0x1c, 0x9e, 0xf2, 0xda, 0xb7, 0x90, 0x3f, 0x25,
|
||||||
0x53, 0xa2, 0x66, 0xdb, 0x8e, 0xfd, 0x38, 0x41, 0xd9, 0x84, 0x22, 0x40, 0xf2, 0x5b, 0x26, 0x4b,
|
0xa1, 0x28, 0xc9, 0x15, 0xda, 0x56, 0xe8, 0x84, 0x11, 0x17, 0x43, 0x28, 0x00, 0x44, 0x7f, 0x68,
|
||||||
0xc9, 0x94, 0xf1, 0xc8, 0x26, 0x45, 0x99, 0x26, 0xe9, 0xfc, 0x59, 0x17, 0x71, 0x61, 0x2d, 0xe2,
|
0x32, 0x24, 0x4d, 0x31, 0x8f, 0x18, 0x52, 0x10, 0x1b, 0x92, 0xaa, 0x1f, 0x77, 0x21, 0x0b, 0x56,
|
||||||
0xb9, 0xb1, 0x4e, 0x6d, 0xef, 0xe7, 0x32, 0x38, 0xf3, 0x33, 0x23, 0x27, 0x0e, 0xac, 0x32, 0x21,
|
0x03, 0x9a, 0x90, 0xf5, 0xc4, 0xb6, 0x7f, 0x65, 0xc1, 0x9c, 0x5f, 0x99, 0x53, 0x64, 0xc2, 0x0a,
|
||||||
0x52, 0xca, 0x05, 0x3a, 0x31, 0x25, 0x5f, 0x26, 0x44, 0x13, 0x07, 0x13, 0xbe, 0xda, 0x22, 0x6d,
|
0x61, 0x6c, 0x02, 0x39, 0x87, 0xc7, 0xa6, 0xc0, 0x4b, 0x18, 0x6b, 0xf0, 0xfe, 0x18, 0xaf, 0xb2,
|
||||||
0xd8, 0xc2, 0xa4, 0xdb, 0x65, 0x88, 0xa6, 0x1b, 0xb6, 0xea, 0xc6, 0x4b, 0xd3, 0x8d, 0x45, 0x99,
|
0x50, 0x0b, 0x36, 0x79, 0xd4, 0xe9, 0x10, 0xce, 0xf5, 0x34, 0x32, 0x72, 0x1a, 0x2f, 0xf5, 0x34,
|
||||||
0x2a, 0xed, 0xec, 0x25, 0x9a, 0xc7, 0x20, 0x17, 0xb0, 0xd9, 0xf7, 0x83, 0x90, 0xf5, 0x0c, 0xe6,
|
0xd2, 0x2a, 0x95, 0x5b, 0xf1, 0x4d, 0x38, 0x99, 0x03, 0x9d, 0xc3, 0x46, 0xcf, 0x71, 0x3d, 0xd2,
|
||||||
0xb2, 0xc2, 0x7c, 0xf1, 0x18, 0xe6, 0xa9, 0xba, 0x53, 0x67, 0xb1, 0x1f, 0x84, 0x34, 0x87, 0xe0,
|
0xd5, 0x39, 0xb3, 0x32, 0xe7, 0x8b, 0x45, 0x39, 0x4f, 0xe4, 0x9e, 0x1a, 0x09, 0x1d, 0xd7, 0xc3,
|
||||||
0x9e, 0xc0, 0x96, 0xc9, 0xa8, 0x8f, 0xa5, 0x44, 0xdc, 0xf4, 0xda, 0x8c, 0x79, 0x6a, 0x4b, 0xae,
|
0x89, 0x0c, 0xd6, 0x31, 0x6c, 0xea, 0x8a, 0x6a, 0x59, 0x50, 0x44, 0xf5, 0xac, 0xb5, 0xcc, 0x27,
|
||||||
0xa8, 0x50, 0x27, 0x5c, 0xb5, 0xe5, 0x7e, 0x82, 0xcd, 0x6c, 0x8a, 0xcc, 0x63, 0x6b, 0xe7, 0x1e,
|
0xb6, 0xc0, 0xca, 0x65, 0xd6, 0x31, 0x56, 0x65, 0x59, 0x1f, 0x61, 0x23, 0x5e, 0x22, 0x76, 0x6c,
|
||||||
0xdb, 0x27, 0xab, 0xe8, 0x7e, 0xb7, 0xd2, 0xfa, 0x8c, 0x04, 0x8b, 0x56, 0xc2, 0x82, 0xda, 0x88,
|
0x33, 0x89, 0x63, 0xfb, 0x60, 0x16, 0xad, 0x9f, 0xc6, 0xa4, 0x3f, 0x4d, 0x41, 0xda, 0x95, 0x90,
|
||||||
0x0f, 0x7b, 0x3d, 0x55, 0xd5, 0x64, 0x82, 0xb5, 0x2e, 0x4f, 0x6c, 0x87, 0xd1, 0x6e, 0x2e, 0x94,
|
0xd2, 0x1b, 0x72, 0x60, 0xb7, 0x2b, 0xbb, 0x1a, 0x2b, 0x58, 0xf1, 0xf2, 0xc0, 0x71, 0x68, 0xee,
|
||||||
0xf7, 0x19, 0xc8, 0xbb, 0xa0, 0x3b, 0x94, 0x00, 0xad, 0x7e, 0x5f, 0x02, 0x98, 0x95, 0x11, 0xcd,
|
0xe6, 0xa6, 0xb2, 0x3f, 0x03, 0x7a, 0xe7, 0x76, 0x86, 0x22, 0x41, 0xb3, 0xd7, 0x13, 0x09, 0xf4,
|
||||||
0xae, 0x8c, 0xec, 0x34, 0x16, 0x01, 0x26, 0xd2, 0x9a, 0x71, 0x2d, 0xd0, 0x8c, 0x47, 0x3e, 0x32,
|
0x95, 0x11, 0xcc, 0x5e, 0x19, 0x71, 0x35, 0x16, 0x00, 0xc6, 0xd4, 0x6a, 0xb9, 0xe6, 0x70, 0xcc,
|
||||||
0x43, 0x83, 0x9b, 0x5b, 0x0d, 0x53, 0x5e, 0x6f, 0x1f, 0xfe, 0x9e, 0xc9, 0x8f, 0xbc, 0xf6, 0xc3,
|
0x23, 0x8e, 0xcc, 0x50, 0xe7, 0x4d, 0x5c, 0x0d, 0x53, 0x5e, 0x7b, 0x0f, 0xfe, 0x9f, 0xa9, 0xcf,
|
||||||
0x06, 0xfd, 0x86, 0x21, 0xc7, 0xb0, 0x95, 0xdb, 0xd6, 0xe4, 0xc0, 0xd0, 0x9e, 0x7e, 0xa7, 0xb8,
|
0xa9, 0xfd, 0xd5, 0x00, 0xab, 0x11, 0x79, 0xa1, 0x7b, 0x41, 0xd8, 0xc8, 0xf5, 0x1d, 0xef, 0x2c,
|
||||||
0xce, 0xfc, 0x03, 0xe4, 0xe4, 0x23, 0xec, 0xcd, 0x13, 0x89, 0x14, 0x1f, 0x54, 0xf0, 0xc6, 0x3d,
|
0xe8, 0xbb, 0xfe, 0xf1, 0x80, 0x74, 0x86, 0xa2, 0xbf, 0x34, 0x22, 0x17, 0x75, 0xb5, 0x0b, 0xb9,
|
||||||
0x7a, 0x44, 0x61, 0x72, 0x09, 0xfb, 0x73, 0xd7, 0x1a, 0x39, 0xca, 0xd5, 0x32, 0xbb, 0x94, 0xdd,
|
0x30, 0x18, 0x12, 0x5f, 0xcf, 0x56, 0x19, 0xd3, 0x68, 0xb3, 0x33, 0x68, 0xed, 0x26, 0x3c, 0x4d,
|
||||||
0xd2, 0xc3, 0x01, 0xc8, 0x49, 0x0f, 0x8e, 0xda, 0x09, 0x67, 0xe2, 0x4c, 0x44, 0x09, 0x7f, 0xb6,
|
0xed, 0xe6, 0x5f, 0x4e, 0x58, 0xf5, 0x7b, 0x16, 0xd4, 0x0b, 0x8a, 0x8e, 0x60, 0x33, 0xf1, 0x1a,
|
||||||
0x2c, 0x6f, 0x61, 0x7b, 0x4a, 0x7f, 0x72, 0x68, 0x2e, 0xcd, 0xce, 0x85, 0xeb, 0x2e, 0x3a, 0x42,
|
0xa1, 0xbc, 0x1e, 0xeb, 0xf4, 0x9b, 0x69, 0x99, 0xf3, 0x17, 0x38, 0x45, 0x1f, 0x60, 0x77, 0x9e,
|
||||||
0x7e, 0xbc, 0x7b, 0xb9, 0x5d, 0xd1, 0x9f, 0x08, 0x6f, 0xf8, 0x15, 0x95, 0xff, 0xaf, 0x56, 0xd4,
|
0x08, 0x50, 0xe1, 0x5e, 0x85, 0x5c, 0x5b, 0x07, 0x0b, 0x14, 0x84, 0x2e, 0x61, 0x6f, 0xee, 0xb5,
|
||||||
0x17, 0xc0, 0xab, 0x5f, 0x01, 0x00, 0x00, 0xff, 0xff, 0x08, 0x9a, 0x1f, 0x1c, 0x40, 0x08, 0x00,
|
0x8d, 0x0e, 0x12, 0xbd, 0xcc, 0x3e, 0x3a, 0x56, 0xf1, 0xfe, 0x00, 0x4e, 0x51, 0x17, 0x0e, 0x5a,
|
||||||
0x00,
|
0x11, 0x25, 0xec, 0x94, 0x05, 0x11, 0x7d, 0xb4, 0x2a, 0x6f, 0x61, 0x6b, 0x4a, 0x5f, 0x68, 0x5f,
|
||||||
|
0x6f, 0x9a, 0xd5, 0xbd, 0x65, 0xa5, 0x2d, 0x71, 0x8a, 0x3e, 0x41, 0x3e, 0x45, 0x03, 0xe8, 0x50,
|
||||||
|
0x6f, 0x4b, 0x57, 0xac, 0x65, 0x2f, 0x0a, 0xe1, 0xf4, 0x68, 0xe7, 0x72, 0xab, 0xac, 0x3e, 0xb2,
|
||||||
|
0xde, 0xd0, 0x2b, 0x2c, 0xfe, 0x5f, 0x2d, 0xcb, 0x6f, 0xa8, 0x57, 0xbf, 0x03, 0x00, 0x00, 0xff,
|
||||||
|
0xff, 0x8e, 0xbc, 0x1c, 0xdc, 0x82, 0x09, 0x00, 0x00,
|
||||||
}
|
}
|
||||||
|
@ -76,12 +76,26 @@ int32 platformID = 2;
|
|||||||
message KickUserOfflineResp{
|
message KickUserOfflineResp{
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
message MultiTerminalLoginCheckReq{
|
||||||
|
string userID = 1;
|
||||||
|
int32 platformID = 2;
|
||||||
|
string token = 3;
|
||||||
|
string operationID = 4;
|
||||||
|
}
|
||||||
|
message MultiTerminalLoginCheckResp{
|
||||||
|
int32 errCode = 1;
|
||||||
|
string errMsg = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
service relay {
|
service relay {
|
||||||
rpc OnlinePushMsg(OnlinePushMsgReq) returns(OnlinePushMsgResp);
|
rpc OnlinePushMsg(OnlinePushMsgReq) returns(OnlinePushMsgResp);
|
||||||
rpc GetUsersOnlineStatus(GetUsersOnlineStatusReq) returns(GetUsersOnlineStatusResp);
|
rpc GetUsersOnlineStatus(GetUsersOnlineStatusReq) returns(GetUsersOnlineStatusResp);
|
||||||
rpc OnlineBatchPushOneMsg(OnlineBatchPushOneMsgReq) returns(OnlineBatchPushOneMsgResp);
|
rpc OnlineBatchPushOneMsg(OnlineBatchPushOneMsgReq) returns(OnlineBatchPushOneMsgResp);
|
||||||
rpc SuperGroupOnlineBatchPushOneMsg(OnlineBatchPushOneMsgReq) returns(OnlineBatchPushOneMsgResp);
|
rpc SuperGroupOnlineBatchPushOneMsg(OnlineBatchPushOneMsgReq) returns(OnlineBatchPushOneMsgResp);
|
||||||
rpc KickUserOffline(KickUserOfflineReq) returns(KickUserOfflineResp);
|
rpc KickUserOffline(KickUserOfflineReq) returns(KickUserOfflineResp);
|
||||||
// rpc SendMsgByWS(SendMsgByWSReq) returns(MsgToUserResp);
|
rpc MultiTerminalLoginCheck(MultiTerminalLoginCheckReq) returns(MultiTerminalLoginCheckResp);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user