Exemple #1
0
void websocket_processor::onMessage(int socketFD)
{
  int rc = alm::network::recv(socketFD, m_buffer, BLOCK);
  if( rc > 0)
  {
    if(m_websocket_handler.exists(socketFD))
    {
      alm::websocket_frame frame;
      alm::websocket::readFrame(socketFD, m_buffer, rc, frame);
      m_websocket_handler.processFrame(socketFD, frame);
    }
    else
    {
      std::string rqst((const char*)m_buffer, rc);
      if(rqst.find(alm::websocket::SEC_WEBSOCKET_KEY) != std::string::npos)
      {
	alm::websocket::handshake(socketFD, rqst);
	m_websocket_handler.onOpen(socketFD);
      }
      else
      {
	m_http_handler.process(socketFD, m_buffer, rc);
      }
    }
  }
}
Exemple #2
0
int main( int argc, char *argv[] ) {
    int connfd;

    get_config(argc,argv);
    set_signals();
    server_sock = server_start();
    cout << "Server start running at port " << server_port << endl;
    while( true ) {

        connfd = Accept( server_sock, NULL, NULL );

        Request rqst( connfd );
        rqst.handle();

    }

    close(server_sock);
    return 0;
}