3 创建服务项目
1、导出基类库
#add_executable(SimpleService ${SRC_LIST})
add_library(ServiceBase STATIC ${SRC_LIST})2、创建一个新项目
#include "ChatService.h"
int main(){
ChatService svr;
svr.Start();
return 0;
}Last updated
#add_executable(SimpleService ${SRC_LIST})
add_library(ServiceBase STATIC ${SRC_LIST})#include "ChatService.h"
int main(){
ChatService svr;
svr.Start();
return 0;
}Last updated
#pragma once
#include "NetService.h"
#include "RoomMgr.h"
class ClientUser;
class ChatService :
public CNetService
{
public:
ChatService();
public:
virtual CLinkUser* CreateUser(int nOrigin);
public:
virtual void OnTimeOut(time_t tNow);
public:
int OnCreateRoom(int64_t sesID, int& nRoomID);
int JoinRoom(int64_t sesID, int& nRoomID, ClientUser* pUser);
int OnSendRoomMsg(int64_t sesID, int nRoomID, std::string& msg);
int OnClientBreak(int64_t sesID);
private:
RoomMgr m_roomMgr;
};
extern ChatService* g_pService;CLinkUser* ChatService::CreateUser(int nOrigin)
{
switch(nOrigin)
{
case ORIGINE_CLIENT:
return new ClientUser();
}
return nullptr;
}#pragma once
#include "Protocol.h"
const int ORIGINE_CLIENT = 1;
const int ORIGINE_CHATSVR = 2001;void ChatService::OnTimeOut(time_t tNow)
{
m_roomMgr.Check();
}#include "ChatService.h"
#include "ClientUser.h"
#include "Protocol.h"
#include <iostream>
#include "HYLog.h"
#include "HYFunc.h"
ChatService* g_pService = nullptr;
ChatService::ChatService()
{
g_pService = this;
m_nPort = 21100;
SetLogName("./ChatService.log");
}