session

package
v0.0.0-...-d436db8 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 10, 2020 License: MIT Imports: 8 Imported by: 0

Documentation

Index

Constants

View Source
const (
	RegisteredChatRoomUser    = "reg"
	NonRegisteredChatRoomUser = "noreg"
	RobotChatRoomUser         = "fake"

	ChatRoomWebUserPrefix = "web_"
)
View Source
const (
	Success = iota
	CallbackFailed
	AddUserFailed

	UserIsRobot              int = 100
	UserAlreadyInChatRoom        = 101
	SessionAlreadyInChatRoom     = 102
	AllSessionQuitedChatRoom     = 103
	SessionNotInChatRoom         = 104
)
View Source
const (
	NormalUser    int = 0
	HighLevelUser     = 1
)
View Source
const (
	GroupOwner      uint8 = 255
	GroupNormalUser uint8 = 0
)

Variables

View Source
var (
	JoinChatRoomSuccessResp = &JoinChatRoomResponse{
		UserChatRoomResponse: &UserChatRoomResponse{
			Code:     Success,
			Reason:   "success",
			Response: []byte("response"),
		},
		ChatRoomDetail: &ChatRoomDetail{
			AppID:   logic.APPID_HUAJIAO,
			Members: make(map[string]int),
		},
	}
	QuitChatRoomSuccessResp = &QuitChatRoomResponse{
		UserChatRoomResponse: &UserChatRoomResponse{
			Code:     Success,
			Reason:   "success",
			Response: []byte(""),
		},
	}
)

构造加入/退出成功返回

View Source
var GorpcClient *gorpc.Client

Functions

func CheckUserType

func CheckUserType(userType string) bool

func GetInfo

func GetInfo(user string, appid uint16, connId logic.ConnectionId, gatewayAddr string, infoType string, infoId int64, infoOffset int32, sParameter []byte) (int, error)

@todo 返回值 还不知道 是什么

func GetUserType

func GetUserType(user string, appid uint16, connectionType string) string

func OnlineCacheStat

func OnlineCacheStat(addr string) (map[string][]map[string]uint64, error)

获取online_cache的统计信息

func QueryUserOnlineCache

func QueryUserOnlineCache(addr string, appid uint16, users []string) (map[string][]*logic.UserGateway, error)

Types

type ChatRoomDetail

type ChatRoomDetail struct {
	AppID        uint16
	RoomID       string
	CreateTime   int64
	Version      uint
	MaxID        uint
	Members      map[string]int
	GatewayAddrs map[string]int
}

func QueryChatRoom

func QueryChatRoom(user string, appid string, room string) (*ChatRoomDetail, error)

func (*ChatRoomDetail) ConnCount

func (this *ChatRoomDetail) ConnCount() int

长连用户数

func (*ChatRoomDetail) MemberCount

func (this *ChatRoomDetail) MemberCount() int

pb协议中的成员数,包括所有用户

func (*ChatRoomDetail) Registered

func (this *ChatRoomDetail) Registered() int

pb协议中的注册用户数,包括普通注册用户 + 机器人

type CloseSessionReq

type CloseSessionReq struct {
	*UserSession
}

type CloseSessionResp

type CloseSessionResp struct {
	Tags []string
}

func Close

func Close(userId string, appId uint16, gatewayAddr string, connectionId logic.ConnectionId, property map[string]string) (*CloseSessionResp, error)

type GetMsgInfo

type GetMsgInfo struct {
	User         string
	Appid        uint16
	ConnectionId logic.ConnectionId
	GatewayAddr  string
	InfoType     string
	InfoId       int64 // lastId+1
	InfoOffset   int32 // 最多返回多少条
	SParameter   []byte
}

type JoinChatRoomRequest

type JoinChatRoomRequest struct {
	*UserChatRoomRequest
	Properties map[string]string
}

type JoinChatRoomResponse

type JoinChatRoomResponse struct {
	*UserChatRoomResponse
	*ChatRoomDetail
}

func AddRobotIntoChatRoom

func AddRobotIntoChatRoom(user string, appid string, room string, properties map[string]string) (*JoinChatRoomResponse, error)

properties用于保存机器人其他请求参数(除去uid, appid, rid之外)

func JoinChatRoom

func JoinChatRoom(user string, appid string, gateway string, connectionId logic.ConnectionId, connectionType string, room string, props map[string]string) (*JoinChatRoomResponse, error)

type OpenSessionReq

type OpenSessionReq struct {
	*UserSession
}

type OpenSessionResp

type OpenSessionResp struct {
	OldUserSessions []*UserSession
	Tags            []string
}

func Open

func Open(userId string, appId uint16, isLoginUser bool, sessionKey string,
	connectionId logic.ConnectionId, gatewayAddr string, property map[string]string) (*OpenSessionResp, error)

type QuerySessionReq

type QuerySessionReq struct {
	QueryUserSessions []*UserSession
}

type QuerySessionResp

type QuerySessionResp struct {
	ResultUserSessions []*UserSession
}

type QuitChatRoomRequest

type QuitChatRoomRequest struct {
	*UserChatRoomRequest
	Properties map[string]string
}

type QuitChatRoomResponse

type QuitChatRoomResponse struct {
	*UserChatRoomResponse
}

func QuitChatRoom

func QuitChatRoom(user string, appid string, gateway string, connectionId logic.ConnectionId, connectionType string, room string, props map[string]string) (*QuitChatRoomResponse, error)

func RemoveRobotFromChatRoom

func RemoveRobotFromChatRoom(user string, appid string, room string) (*QuitChatRoomResponse, error)

type SessionStat

type SessionStat struct {
	// user sessions
	OpenSessions      uint64
	OpenSessionFails  uint64
	CloseSessions     uint64
	CloseSessionFails uint64
	QuerySessions     uint64
	QuerySessionFails uint64
	// chatroom request count
	Joins      uint64
	JoinFails  uint64
	Quits      uint64
	QuitFails  uint64
	Querys     uint64
	QueryFails uint64
	// p2p chat response time count
	OpenRespTime         uint64
	CloseRespTime        uint64
	QuerySessionRespTime uint64
	// chatroom response time count
	JoinRespTime  uint64
	QuitRespTime  uint64
	QueryRespTime uint64
	// stat switch state
	StatResponse int32
}

func GetSessionQps

func GetSessionQps(gorpcAddr string) (*SessionStat, error)

* get session qps from specified saver * @param gorpcAddr is specified saver go rpc address * @return (*SessionStat, nil) if successful, otherwise (*SessionStat{}, error) will be return

func GetSessionTotalOps

func GetSessionTotalOps(gorpcAddr string) (*SessionStat, error)

* get session total operations count after start from specified saver * @param gorpcAddr is specified saver go rpc address * @return (*SessionStat, nil) if successful, otherwise (*SessionStat{}, error) will be return

func (*SessionStat) Add

func (stat *SessionStat) Add(add *SessionStat) *SessionStat

* stat add add and then store result in stat * @param add is value will be added * @return stat with new value

func (*SessionStat) AtomicAddCloseRespTime

func (stat *SessionStat) AtomicAddCloseRespTime(i uint64) uint64

func (*SessionStat) AtomicAddCloseSessionFails

func (stat *SessionStat) AtomicAddCloseSessionFails(i uint64) uint64

func (*SessionStat) AtomicAddCloseSessions

func (stat *SessionStat) AtomicAddCloseSessions(i uint64) uint64

func (*SessionStat) AtomicAddJoinFails

func (stat *SessionStat) AtomicAddJoinFails(i uint64) uint64

func (*SessionStat) AtomicAddJoinRespTime

func (stat *SessionStat) AtomicAddJoinRespTime(i uint64) uint64

func (*SessionStat) AtomicAddJoins

func (stat *SessionStat) AtomicAddJoins(i uint64) uint64

func (*SessionStat) AtomicAddOpenRespTime

func (stat *SessionStat) AtomicAddOpenRespTime(i uint64) uint64

func (*SessionStat) AtomicAddOpenSessionFails

func (stat *SessionStat) AtomicAddOpenSessionFails(i uint64) uint64

func (*SessionStat) AtomicAddOpenSessions

func (stat *SessionStat) AtomicAddOpenSessions(i uint64) uint64

func (*SessionStat) AtomicAddQueryFails

func (stat *SessionStat) AtomicAddQueryFails(i uint64) uint64

func (*SessionStat) AtomicAddQueryRespTime

func (stat *SessionStat) AtomicAddQueryRespTime(i uint64) uint64

func (*SessionStat) AtomicAddQuerySessionFails

func (stat *SessionStat) AtomicAddQuerySessionFails(i uint64) uint64

func (*SessionStat) AtomicAddQuerySessionRespTime

func (stat *SessionStat) AtomicAddQuerySessionRespTime(i uint64) uint64

func (*SessionStat) AtomicAddQuerySessions

func (stat *SessionStat) AtomicAddQuerySessions(i uint64) uint64

func (*SessionStat) AtomicAddQuerys

func (stat *SessionStat) AtomicAddQuerys(i uint64) uint64

func (*SessionStat) AtomicAddQuitFails

func (stat *SessionStat) AtomicAddQuitFails(i uint64) uint64

func (*SessionStat) AtomicAddQuitRespTime

func (stat *SessionStat) AtomicAddQuitRespTime(i uint64) uint64

func (*SessionStat) AtomicAddQuits

func (stat *SessionStat) AtomicAddQuits(i uint64) uint64

func (*SessionStat) AtomicCopyTo

func (stat *SessionStat) AtomicCopyTo(copy *SessionStat) *SessionStat

operations

  • this copy content of stat to 'copy' atomicly
  • @param copy is target the content copy to
  • @return copy if it is not nil, otherwise will return a new GatewayStat point

func (*SessionStat) AtomicGetCloseRespTime

func (stat *SessionStat) AtomicGetCloseRespTime() uint64

func (*SessionStat) AtomicGetCloseSessionFails

func (stat *SessionStat) AtomicGetCloseSessionFails() uint64

func (*SessionStat) AtomicGetCloseSessions

func (stat *SessionStat) AtomicGetCloseSessions() uint64

func (*SessionStat) AtomicGetJoinFails

func (stat *SessionStat) AtomicGetJoinFails() uint64

func (*SessionStat) AtomicGetJoinRespTime

func (stat *SessionStat) AtomicGetJoinRespTime() uint64

func (*SessionStat) AtomicGetJoins

func (stat *SessionStat) AtomicGetJoins() uint64

func (*SessionStat) AtomicGetOpenRespTime

func (stat *SessionStat) AtomicGetOpenRespTime() uint64

func (*SessionStat) AtomicGetOpenSessionFails

func (stat *SessionStat) AtomicGetOpenSessionFails() uint64

func (*SessionStat) AtomicGetOpenSessions

func (stat *SessionStat) AtomicGetOpenSessions() uint64

func (*SessionStat) AtomicGetQueryFails

func (stat *SessionStat) AtomicGetQueryFails() uint64

func (*SessionStat) AtomicGetQueryRespTime

func (stat *SessionStat) AtomicGetQueryRespTime() uint64

func (*SessionStat) AtomicGetQuerySessionFails

func (stat *SessionStat) AtomicGetQuerySessionFails() uint64

func (*SessionStat) AtomicGetQuerySessionRespTime

func (stat *SessionStat) AtomicGetQuerySessionRespTime() uint64

func (*SessionStat) AtomicGetQuerySessions

func (stat *SessionStat) AtomicGetQuerySessions() uint64

func (*SessionStat) AtomicGetQuerys

func (stat *SessionStat) AtomicGetQuerys() uint64

func (*SessionStat) AtomicGetQuitFails

func (stat *SessionStat) AtomicGetQuitFails() uint64

func (*SessionStat) AtomicGetQuitRespTime

func (stat *SessionStat) AtomicGetQuitRespTime() uint64

func (*SessionStat) AtomicGetQuits

func (stat *SessionStat) AtomicGetQuits() uint64

func (*SessionStat) AtomicGetStatResponse

func (stat *SessionStat) AtomicGetStatResponse() bool

func (*SessionStat) AtomicGetUserSessionRequests

func (stat *SessionStat) AtomicGetUserSessionRequests() uint64

func (*SessionStat) AtomicMakeQps

func (stat *SessionStat) AtomicMakeQps(i uint64) string

* this computes qps with stat according to interval * @param i is interval which unit is second * @return a json string that include saver QPS information

func (*SessionStat) AtomicSetStatResponse

func (stat *SessionStat) AtomicSetStatResponse(value bool)

func (*SessionStat) QpsString

func (stat *SessionStat) QpsString() string

func (*SessionStat) String

func (stat *SessionStat) String() string

func (*SessionStat) Sub

func (stat *SessionStat) Sub(sub *SessionStat) *SessionStat

* stat subtract sub and then store result in stat * @param sub is value will be subtracted * @return stat with new value

type UserChatRoomRequest

type UserChatRoomRequest struct {
	User         string
	UserType     string
	Appid        uint16
	ConnectionId logic.ConnectionId
	GatewayAddr  string
	RoomID       string
	IsJoin       bool
	AudienceList bool
}

type UserChatRoomResponse

type UserChatRoomResponse struct {
	Code     int
	Reason   string
	Response []byte
}

type UserOnlineCache

type UserOnlineCache struct {
	AppId   uint16
	UserIds []string
}

type UserSession

type UserSession struct {
	UserId     string
	SessionId  string
	SessionKey string
	LoginTime  string //uint64
	AppId      uint16
	Deviceid   string
	ClientVer  string //uint16
	SenderType string
	Platform   string
	UserIp     string
	TraceId    string

	IsLoginUser  bool
	ConnectionId logic.ConnectionId
	GatewayAddr  string
	Property     map[string]string
}

func Query

func Query(querys []*UserSession) ([]*UserSession, error)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL