本文整理汇总了Golang中gk/game/ses.SingleSessionDef.GetCurrentPodId方法的典型用法代码示例。如果您正苦于以下问题:Golang SingleSessionDef.GetCurrentPodId方法的具体用法?Golang SingleSessionDef.GetCurrentPodId怎么用?Golang SingleSessionDef.GetCurrentPodId使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类gk/game/ses.SingleSessionDef
的用法示例。
在下文中一共展示了SingleSessionDef.GetCurrentPodId方法的11个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: removeAvatarBySessionId
func (fieldContext *FieldContextDef) removeAvatarBySessionId(sessionId string) *gkerr.GkErrDef {
var websocketConnectionContext *websocketConnectionContextDef
var gkErr *gkerr.GkErrDef
var singleSession *ses.SingleSessionDef
singleSession = fieldContext.sessionContext.GetSessionFromId(sessionId)
var podId int32 = singleSession.GetCurrentPodId()
websocketConnectionContext, gkErr = fieldContext.getWebsocketConnectionContextById(sessionId)
if gkErr != nil {
return gkErr
}
var fieldObject *fieldObjectDef
var ok bool
fieldObject, ok = fieldContext.podMap[podId].avatarMap[websocketConnectionContext.avatarId]
if ok {
fieldContext.sendAllRemoveMessageForObject(websocketConnectionContext.sessionId, fieldObject)
}
if websocketConnectionContext.avatarId != "" {
delete(fieldContext.podMap[podId].avatarMap, websocketConnectionContext.avatarId)
}
return nil
}
示例2: handleGetAvatarSvgReq
func (fieldContext *FieldContextDef) handleGetAvatarSvgReq(messageFromClient *message.MessageFromClientDef) *gkerr.GkErrDef {
var messageToClient *message.MessageToClientDef = new(message.MessageToClientDef)
var getSvg getSvgDef
var gkErr *gkerr.GkErrDef
var err error
err = json.Unmarshal(messageFromClient.JsonData, &getSvg)
if err != nil {
gkErr = gkerr.GenGkErr("json.Unmarshal", err, ERROR_ID_JSON_UNMARSHAL)
return gkErr
}
var randomByte byte
randomByte = fieldContext.sessionContext.RandContext.GetRandomByte()
var svgJsonData *message.SvgJsonDataDef = new(message.SvgJsonDataDef)
svgJsonData.Id = fieldContext.getNextObjectId()
svgJsonData.IsoXYZ.X = int16((randomByte&0x07)*3) - 10
svgJsonData.IsoXYZ.Y = int16(((randomByte>>4)&0x07)*3) - 10
gkErr = messageToClient.BuildSvgMessageToClient(fieldContext.avatarSvgDir, message.GetAvatarSvgRes, getSvg.SvgName, svgJsonData)
if gkErr != nil {
return gkErr
}
var singleSession *ses.SingleSessionDef
singleSession = fieldContext.sessionContext.GetSessionFromId(messageFromClient.SessionId)
var podId int32 = singleSession.GetCurrentPodId()
fieldContext.queueMessageToClient(messageFromClient.SessionId, messageToClient)
var fieldObject *fieldObjectDef = new(fieldObjectDef)
fieldObject.id = svgJsonData.Id
fieldObject.fileName = getSvg.SvgName
fieldObject.isoXYZ = svgJsonData.IsoXYZ
fieldObject.sourceSessionId = messageFromClient.SessionId
fieldContext.addAvatarObject(podId, fieldObject)
var websocketConnectionContext *websocketConnectionContextDef
websocketConnectionContext, gkErr = fieldContext.getWebsocketConnectionContextById(messageFromClient.SessionId)
if gkErr != nil {
return gkErr
}
websocketConnectionContext.avatarId = fieldObject.id
gkErr = fieldContext.sendNewAvatarToAll(podId, messageFromClient.SessionId, fieldObject.id)
if gkErr != nil {
return gkErr
}
return nil
}
示例3: sendAllRemoveMessageForObject
func (fieldContext *FieldContextDef) sendAllRemoveMessageForObject(sessionId string, fieldObject *fieldObjectDef) {
var messageToClient *message.MessageToClientDef = new(message.MessageToClientDef)
var singleSession *ses.SingleSessionDef
singleSession = fieldContext.sessionContext.GetSessionFromId(sessionId)
var podId int32 = singleSession.GetCurrentPodId()
messageToClient.Command = message.DelSvgReq
messageToClient.JsonData = []byte(fmt.Sprintf("{ \"id\": \"%s\"}", fieldObject.id))
for _, websocketConnectionContext := range fieldContext.podMap[podId].websocketConnectionMap {
fieldContext.queueMessageToClient(websocketConnectionContext.sessionId, messageToClient)
}
}
示例4: doTerrainSvg
func (fieldContext *FieldContextDef) doTerrainSvg(websocketConnectionContext *websocketConnectionContextDef) *gkerr.GkErrDef {
var terrainSentMap map[string]string = make(map[string]string)
var gkErr *gkerr.GkErrDef
var singleSession *ses.SingleSessionDef
singleSession = fieldContext.sessionContext.GetSessionFromId(websocketConnectionContext.sessionId)
var terrainJson *terrainJsonDef
terrainJson = fieldContext.podMap[singleSession.GetCurrentPodId()].terrainJson
for i := 0; i < len(terrainJson.jsonMapData.TileList); i++ {
var terrain string = terrainJson.jsonMapData.TileList[i].Terrain
var ok bool
if terrain != "" {
_, ok = terrainSentMap[terrain]
if !ok {
var messageToClient *message.MessageToClientDef = new(message.MessageToClientDef)
gkErr = messageToClient.BuildSvgMessageToClient(fieldContext.terrainSvgDir, message.SetTerrainSvgReq, terrain, nil)
if gkErr != nil {
return gkErr
}
fieldContext.queueMessageToClient(websocketConnectionContext.sessionId, messageToClient)
terrainSentMap[terrain] = terrain
}
}
}
for i := 0; i < len(terrainJson.jsonMapData.ObjectList); i++ {
var terrain string = terrainJson.jsonMapData.ObjectList[i].Object
var ok bool
_, ok = terrainSentMap[terrain]
if !ok {
var messageToClient *message.MessageToClientDef = new(message.MessageToClientDef)
gkErr = messageToClient.BuildSvgMessageToClient(fieldContext.terrainSvgDir, message.SetTerrainSvgReq, terrain, nil)
if gkErr != nil {
return gkErr
}
fieldContext.queueMessageToClient(websocketConnectionContext.sessionId, messageToClient)
terrainSentMap[terrain] = terrain
}
}
return nil
}
示例5: getWebsocketConnectionContextById
func (fieldContext *FieldContextDef) getWebsocketConnectionContextById(sessionId string) (*websocketConnectionContextDef, *gkerr.GkErrDef) {
var websocketConnectionContext *websocketConnectionContextDef = nil
var gkErr *gkerr.GkErrDef
var ok bool
var singleSession *ses.SingleSessionDef
singleSession = fieldContext.sessionContext.GetSessionFromId(sessionId)
var podId int32 = singleSession.GetCurrentPodId()
websocketConnectionContext, ok = fieldContext.podMap[podId].websocketConnectionMap[sessionId]
if !ok {
gkErr = gkerr.GenGkErr("getWebsocketConnectionContextById", nil, ERROR_ID_COULD_NOT_GET_WEBSOCKET_CONNECTION_CONTEXT)
return nil, gkErr
}
return websocketConnectionContext, nil
}
示例6: handleWebsocketOpened
func (fieldContext *FieldContextDef) handleWebsocketOpened(websocketOpenedMessage WebsocketOpenedMessageDef) *gkerr.GkErrDef {
var singleSession *ses.SingleSessionDef
singleSession = fieldContext.sessionContext.GetSessionFromId(websocketOpenedMessage.SessionId)
var podId int32 = singleSession.GetCurrentPodId()
var websocketConnectionContext *websocketConnectionContextDef
var gkErr *gkerr.GkErrDef
var ok bool
websocketConnectionContext, ok = fieldContext.podMap[podId].websocketConnectionMap[websocketOpenedMessage.SessionId]
if ok {
gkErr = gkerr.GenGkErr("opening already opened session", nil, ERROR_ID_OPENING_ALREADY_OPEN_SESSION)
return gkErr
}
websocketConnectionContext = new(websocketConnectionContextDef)
websocketConnectionContext.sessionId = websocketOpenedMessage.SessionId
websocketConnectionContext.messageToClientChan = websocketOpenedMessage.MessageToClientChan
websocketConnectionContext.initQueue()
fieldContext.podMap[podId].websocketConnectionMap[websocketOpenedMessage.SessionId] = websocketConnectionContext
var userName string = singleSession.GetUserName()
gkErr = fieldContext.sendUserName(websocketConnectionContext, userName)
if gkErr != nil {
return gkErr
}
gkErr = fieldContext.uploadNewPodInfo(websocketConnectionContext, 1)
gkErr = fieldContext.sendAllPastChat(websocketConnectionContext)
if gkErr != nil {
return gkErr
}
gkErr = fieldContext.sendUserPrefRestore(websocketConnectionContext)
if gkErr != nil {
return gkErr
}
return nil
}
示例7: setAllAvatars
func (fieldContext *FieldContextDef) setAllAvatars(sessionId string, fieldObject *fieldObjectDef) {
var messageToClient *message.MessageToClientDef = new(message.MessageToClientDef)
messageToClient.Command = message.SetSvgReq
messageToClient.JsonData = []byte(fmt.Sprintf("{ \"id\": \"%s\", \"x\": %d, \"y\": %d, \"z\": %d }", fieldObject.id, fieldObject.isoXYZ.X, fieldObject.isoXYZ.Y, fieldObject.isoXYZ.Z))
var singleSession *ses.SingleSessionDef
singleSession = fieldContext.sessionContext.GetSessionFromId(sessionId)
var podId int32 = singleSession.GetCurrentPodId()
for _, websocketConnectionContext := range fieldContext.podMap[podId].websocketConnectionMap {
gklog.LogTrace("compare session " + websocketConnectionContext.sessionId + " " + sessionId)
if websocketConnectionContext.sessionId != sessionId {
gklog.LogTrace("Trace about to queue up move command")
fieldContext.queueMessageToClient(websocketConnectionContext.sessionId, messageToClient)
}
}
}
示例8: handleSetAvatarSvgReq
func (fieldContext *FieldContextDef) handleSetAvatarSvgReq(messageFromClient *message.MessageFromClientDef) *gkerr.GkErrDef {
var gkErr *gkerr.GkErrDef
var err error
var setSvg setSvgDef
gklog.LogTrace("json raw: " + string(messageFromClient.JsonData))
err = json.Unmarshal(messageFromClient.JsonData, &setSvg)
if err != nil {
gkErr = gkerr.GenGkErr("json.Unmarshal", err, ERROR_ID_JSON_UNMARSHAL)
return gkErr
}
var singleSession *ses.SingleSessionDef
singleSession = fieldContext.sessionContext.GetSessionFromId(messageFromClient.SessionId)
var podId int32 = singleSession.GetCurrentPodId()
var fieldObject *fieldObjectDef
var ok bool
fieldObject, ok = fieldContext.podMap[podId].avatarMap[setSvg.Id]
if ok {
var cord int
cord, _ = strconv.Atoi(setSvg.X)
fieldObject.isoXYZ.X = int16(cord)
cord, _ = strconv.Atoi(setSvg.Y)
fieldObject.isoXYZ.Y = int16(cord)
cord, _ = strconv.Atoi(setSvg.Z)
fieldObject.isoXYZ.Z = int16(cord)
gklog.LogTrace("one")
fieldContext.setAllAvatars(messageFromClient.SessionId, fieldObject)
} else {
gkErr = gkerr.GenGkErr("move object", nil, ERROR_ID_COULD_NOT_FIND_OBJECT_TO_MOVE)
gklog.LogGkErr("", gkErr)
}
return nil
}
示例9: removeAllAvatarBySessionId
func (fieldContext *FieldContextDef) removeAllAvatarBySessionId(sessionId string) {
gklog.LogTrace("removing all object by session id")
var singleSession *ses.SingleSessionDef
singleSession = fieldContext.sessionContext.GetSessionFromId(sessionId)
var podId int32 = singleSession.GetCurrentPodId()
for _, fieldObject := range fieldContext.podMap[podId].avatarMap {
if fieldObject.sourceSessionId == sessionId {
var messageToClient *message.MessageToClientDef = new(message.MessageToClientDef)
messageToClient.Command = message.DelSvgReq
messageToClient.JsonData = []byte(fmt.Sprintf("{ \"id\": \"%s\"}", fieldObject.id))
messageToClient.Data = make([]byte, 0, 0)
//fieldContext.removeSendRemoveAvatarBySessionId(podId, messageToClient)
for _, websocketConnectionContext := range fieldContext.podMap[podId].websocketConnectionMap {
fieldContext.queueMessageToClient(websocketConnectionContext.sessionId, messageToClient)
}
delete(fieldContext.podMap[podId].avatarMap, fieldObject.id)
}
}
}
示例10: doTerrainMap
func (fieldContext *FieldContextDef) doTerrainMap(websocketConnectionContext *websocketConnectionContextDef) *gkerr.GkErrDef {
var gkErr *gkerr.GkErrDef
var singleSession *ses.SingleSessionDef
singleSession = fieldContext.sessionContext.GetSessionFromId(websocketConnectionContext.sessionId)
var messageToClient *message.MessageToClientDef = new(message.MessageToClientDef)
messageToClient.Command = message.SetTerrainMapReq
var jsonFileName string = fieldContext.terrainSvgDir + string(os.PathSeparator) + "map_terrain_" + strconv.FormatInt(int64(singleSession.GetCurrentPodId()), 10) + ".json"
messageToClient.JsonData, gkErr = gkcommon.GetFileContents(jsonFileName)
if gkErr != nil {
return gkErr
}
var lf []byte = []byte("\n")
var tb []byte = []byte("\t")
var sp []byte = []byte(" ")
var nl []byte = []byte("")
var te []byte = []byte("errain")
var bj []byte = []byte("bject")
// Not typos
messageToClient.JsonData = bytes.Replace(messageToClient.JsonData, lf, nl, -1)
messageToClient.JsonData = bytes.Replace(messageToClient.JsonData, sp, nl, -1)
messageToClient.JsonData = bytes.Replace(messageToClient.JsonData, tb, nl, -1)
messageToClient.JsonData = bytes.Replace(messageToClient.JsonData, te, nl, -1)
messageToClient.JsonData = bytes.Replace(messageToClient.JsonData, bj, nl, -1)
fieldContext.queueMessageToClient(websocketConnectionContext.sessionId, messageToClient)
return nil
}
示例11: handleNewPodReq
// websocketConnectionContext entry must be moved from old pod to new pod
func (fieldContext *FieldContextDef) handleNewPodReq(messageFromClient *message.MessageFromClientDef) *gkerr.GkErrDef {
var newPodReq newPodReqDef
var gkErr *gkerr.GkErrDef
var err error
err = json.Unmarshal(messageFromClient.JsonData, &newPodReq)
if err != nil {
gkErr = gkerr.GenGkErr("json.Unmarshal", err, ERROR_ID_JSON_UNMARSHAL)
return gkErr
}
var destinationX, destinationY, destinationZ int
destinationX, _ = strconv.Atoi(newPodReq.X)
destinationY, _ = strconv.Atoi(newPodReq.Y)
destinationZ, _ = strconv.Atoi(newPodReq.Z)
var websocketConnectionContext *websocketConnectionContextDef
websocketConnectionContext, gkErr = fieldContext.getWebsocketConnectionContextById(messageFromClient.SessionId)
if gkErr != nil {
return gkErr
}
var singleSession *ses.SingleSessionDef
singleSession = fieldContext.sessionContext.GetSessionFromId(websocketConnectionContext.sessionId)
var oldPodId int32 = singleSession.GetCurrentPodId()
var newPodId int64
newPodId, _ = strconv.ParseInt(newPodReq.PodId, 10, 32)
if (fieldContext.isPodIdValid(int32(newPodId))) && (oldPodId != int32(newPodId)) {
gkErr = fieldContext.moveAllAvatarBySessionId(messageFromClient.SessionId, oldPodId, int32(newPodId), int16(destinationX), int16(destinationY), int16(destinationZ))
if gkErr != nil {
gklog.LogGkErr("", gkErr)
return gkErr
}
delete(fieldContext.podMap[oldPodId].websocketConnectionMap, messageFromClient.SessionId)
singleSession.SetCurrentPodId(int32(newPodId))
fieldContext.podMap[int32(newPodId)].websocketConnectionMap[messageFromClient.SessionId] = websocketConnectionContext
gkErr = fieldContext.uploadNewPodInfo(websocketConnectionContext, int32(newPodId))
if gkErr != nil {
gklog.LogGkErr("", gkErr)
return gkErr
}
gkErr = fieldContext.reAddAvatarBySessionId(messageFromClient.SessionId, int32(newPodId))
if gkErr != nil {
gklog.LogGkErr("", gkErr)
return gkErr
}
} else {
gkErr = gkerr.GenGkErr(fmt.Sprintf("invalid podId: %d", newPodId), nil, ERROR_ID_INVALID_POD_ID)
gklog.LogGkErr("", gkErr)
return gkErr
}
return nil
}