57 lines
1.5 KiB
C++
57 lines
1.5 KiB
C++
#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;
|
|
}
|