Added basic hearbeat framework
This commit is contained in:
@@ -270,6 +270,12 @@ void InWorld::KeyUp(SDL_KeyboardEvent const& key) {
|
||||
|
||||
void InWorld::HandlePacket(SerialPacket* const argPacket) {
|
||||
switch(argPacket->type) {
|
||||
case SerialPacketType::PING:
|
||||
HandlePing(static_cast<ServerPacket*>(argPacket));
|
||||
break;
|
||||
case SerialPacketType::PONG:
|
||||
HandlePong(static_cast<ServerPacket*>(argPacket));
|
||||
break;
|
||||
case SerialPacketType::DISCONNECT:
|
||||
HandleDisconnect(static_cast<ClientPacket*>(argPacket));
|
||||
break;
|
||||
@@ -292,6 +298,17 @@ void InWorld::HandlePacket(SerialPacket* const argPacket) {
|
||||
}
|
||||
}
|
||||
|
||||
void InWorld::HandlePing(ServerPacket* const argPacket) {
|
||||
ServerPacket newPacket;
|
||||
newPacket.type = SerialPacketType::PONG;
|
||||
network.SendTo(&argPacket->srcAddress, &newPacket);
|
||||
}
|
||||
|
||||
void InWorld::HandlePong(ServerPacket* const argPacket) {
|
||||
//TODO: InWorld::HandlePong()
|
||||
}
|
||||
|
||||
|
||||
void InWorld::HandleDisconnect(ClientPacket* const argPacket) {
|
||||
//TODO: More needed in the disconnection
|
||||
SetNextScene(SceneList::CLEANUP);
|
||||
|
||||
@@ -75,6 +75,8 @@ protected:
|
||||
|
||||
//Network handlers
|
||||
void HandlePacket(SerialPacket* const);
|
||||
void HandlePing(ServerPacket* const);
|
||||
void HandlePong(ServerPacket* const);
|
||||
void HandleDisconnect(ClientPacket* const);
|
||||
void HandleCharacterNew(CharacterPacket* const);
|
||||
void HandleCharacterDelete(CharacterPacket* const);
|
||||
|
||||
@@ -61,6 +61,8 @@ private:
|
||||
void HandlePacket(SerialPacket* const);
|
||||
|
||||
//basic connections
|
||||
void HandlePing(ServerPacket* const);
|
||||
void HandlePong(ServerPacket* const);
|
||||
void HandleBroadcastRequest(ServerPacket* const);
|
||||
void HandleJoinRequest(ClientPacket* const);
|
||||
void HandleDisconnect(ClientPacket* const);
|
||||
|
||||
@@ -178,6 +178,12 @@ void ServerApplication::Quit() {
|
||||
void ServerApplication::HandlePacket(SerialPacket* const argPacket) {
|
||||
switch(argPacket->type) {
|
||||
//basic connections
|
||||
case SerialPacketType::PING:
|
||||
HandlePing(static_cast<ServerPacket*>(argPacket));
|
||||
break;
|
||||
case SerialPacketType::PONG:
|
||||
HandlePong(static_cast<ServerPacket*>(argPacket));
|
||||
break;
|
||||
case SerialPacketType::BROADCAST_REQUEST:
|
||||
HandleBroadcastRequest(static_cast<ServerPacket*>(argPacket));
|
||||
break;
|
||||
|
||||
@@ -27,6 +27,16 @@
|
||||
//basic connections
|
||||
//-------------------------
|
||||
|
||||
void ServerApplication::HandlePing(ServerPacket* const argPacket) {
|
||||
ServerPacket newPacket;
|
||||
newPacket.type = SerialPacketType::PONG;
|
||||
network.SendTo(&argPacket->srcAddress, &newPacket);
|
||||
}
|
||||
|
||||
void ServerApplication::HandlePong(ServerPacket* const argPacket) {
|
||||
//TODO: ServerApplications::HandlePong()
|
||||
}
|
||||
|
||||
void ServerApplication::HandleBroadcastRequest(ServerPacket* const argPacket) {
|
||||
//send the server's data
|
||||
ServerPacket newPacket;
|
||||
|
||||
Reference in New Issue
Block a user