Simple WebSocket server library.
Dependents: WebSocketServerTest
Diff: WebSocketServer.cpp
- Revision:
- 0:a816c25e83ed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/WebSocketServer.cpp Mon Mar 16 10:13:30 2015 +0000 @@ -0,0 +1,59 @@ +#include "WebSocketServer.h" +#include "WebSocketConnection.h" + +WebSocketServer::WebSocketServer() +{ +} + +WebSocketServer::~WebSocketServer() +{ +} + +bool WebSocketServer::init(int port) +{ + mTCPSocketServer.set_blocking(true); + + int ret = mTCPSocketServer.bind(port); + if (ret != 0) { + printf("ERROR: Failed to bind %d\r\n", ret); + return false; + } + ret = mTCPSocketServer.listen(); + if (ret != 0) { + printf("ERROR: Failed to listen %d\r\n", ret); + return false; + } + + return true; +} + +void WebSocketServer::run() +{ + WebSocketConnection connection(this); + + while (true) { + // printf("accepting\r\n"); + int ret = mTCPSocketServer.accept(connection.getTCPSocketConnection()); + if (ret != 0) { + continue; + } + connection.run(); + } +} + +void WebSocketServer::setHandler(const char* path, WebSocketHandler* handler) +{ + mHandlers[path] = handler; +} + +WebSocketHandler* WebSocketServer::getHandler(const char* path) +{ + WebSocketHandlerContainer::iterator it; + + it = mHandlers.find(path); + if (it != mHandlers.end()) { + return it->second; + } + return NULL; +} +