#include "ChatServer.h" void ChatServer::onLoad() { ServerModule* sm = (ServerModule*) moduleInstances[ServerModule()]; sm->startServer(9932); } //void ChatServer::run() {} bool ChatServer::onEvent(const Archimedes::Event& event) { unsigned int type = app->getEventType(event); /*if(type == app->getEventType("DataSentEvent")) { //we did this? return true; } else */ if(type == app->getEventType(Archimedes::DataRecievedEvent())) { static ServerModule* sm; { sm = (ServerModule*) moduleInstances[ServerModule()]; } Archimedes::DataRecievedEvent& e = (Archimedes::DataRecievedEvent&) event; static std::string s; s = std::string((const char*)e.msg->m_pData, e.msg->m_cbSize); if(s == "/quit") { sm->disconnectClient(e.msg->m_conn); } else if(s == "/shutdown") { sm->stopServer(); app->end(); } std::cerr << "Server Recieved: " << s << std::endl; for(auto& it : sm->getClients()) { if(it.first != e.msg->m_conn) sm->sendReliable(it.first, s.c_str(), s.length()); else sm->sendReliable(e.msg->m_conn, "\nMessage sent\n", strlen("\nMessage sent\n")); } return true; } /*else if(type == app->getEventType("ConnectionStatusChangedEvent")) { //Archimedes::ConnectionStatusChangedEvent& e = (Archimedes::ConnectionStatusChangedEvent&) event; return false; }*/ return false; }