设为首页 加入收藏

TOP

【FOL】第九周(三)
2017-10-10 12:05:20 】 浏览:9742
Tags:FOL
ame
', 'state']); if (Length(lvData)=0) or (lvData[0]='') then break; pvMsgData.Add(lvData[0], StrToInt(lvData[1])); end; result:= MSG_RESULT_Success; end; function execRequestServerState(const pvServerID: Integer; pvMsgData: TSimpleMsgPack): Integer; var lvServerKey: string; lvFreeNum: Integer; begin lvServerKey:= Format('server:%.3d',[pvServerID]); redisClient.HGET(lvServerKey,'freenum',lvFreeNum); case lvFreeNum of 0: result:= MSG_RESULT_Queue; -1: raise exception.Create('invalid freenum.'); else result:= MSG_RESULT_Success; end; end; function execRequestStartGame(const pvServerID,pvUserID: Integer; pvMsgData: TSimpleMsgPack; pvContext: TIOCPCoderClientContext): Integer; var lvServerKey, lvQueueKey: string; lvFreeNum, lvState: Integer; begin if pvContext.Data <> nil then begin lvServerKey:= Format('server:%.3d',[pvServerID]); redisClient.HGET(lvServerKey,'state',lvState); if lvState <> 0 then raise Exception.Create('Service is Closed.'); redisClient.HGET(lvServerKey,'freenum',lvFreeNum); if lvFreeNum <= 0 then raise Exception.Create('Invalid request, free num is zero.'); // TClientSession(pvContext.Data).ServerID:= pvServerID; TClientSession(pvContext.Data).State:= tusOnline; //更新freenum(freenum-1) lvFreeNum:= Max(lvFreeNum - 1,0); redisClient.HSET(lvServerKey,'freenum',lvFreeNum); //广播上线消息给好友 end; result:= MSG_RESULT_Success; end; function execRequestGameService(pvMsgData: TSimpleMsgPack): Integer; var lvServerID: string; lvContext: TIocpClientContext; begin lvServerID:= IntToStr(pvMsgData.I['serverid']); lvContext:= gvSessionManager.findGameServiceContext(lvServerID); pushMsgData(pvMsgData,lvContext); end; function execTranspond(pvMsgData: TSimpleMsgPack; pvContext: TIOCPCoderClientContext): Integer; var lvUserID: string; lvContext: TIocpClientContext; begin lvUserID:= pvMsgData.S['userid']; lvContext:= gvSessionManager.findGameClientContext(lvUserID); pushMsgData(pvMsgData,lvContext); end; end.

 

首页 上一页 1 2 3 下一页 尾页 3/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇[示例] Firemonkey 不规则按钮实做 下一篇DevExpress VCL v16.1.3发布

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目