![JAR search and dependency download from the Maven repository](/logo.png)
msgpack.rpcx.Server.scala Maven / Gradle / Ivy
package msgpack.rpcx
import msgpack.rpcx.auth.LoginScheduler
import msgpack.rpcx.handler.AuthHandler
import org.msgpack.rpc.loop.EventLoop
/** RPC Server
*
* @author myst3r10n
*/
class Server {
/** RPC loop. */
protected val loop = EventLoop.start
/** RPC Server. */
protected val server = new org.msgpack.rpc.Server(loop)
/** Schedules time expiration. */
protected val scheduler = new LoginScheduler
protected var _handler: AuthHandler = null
/** Get current handler. */
def handler = _handler
/** Set current handler.
*
* @param handler to set
*/
def handler_=(handler: AuthHandler) {
_handler = handler
server.serve(handler)
}
/** Waits till server released. */
def await {
loop.join
}
/** Begins listen of clients.
*
* @param port of server
* @param expire of login in seconds, default is 5 minutes. */
def listen(port: Int, expire: Int = 300) = {
server.listen(port)
scheduler.start(handler.loginMap, expire)
this
}
/** Release all busy resources. */
def release {
scheduler.cancel
loop.shutdown
server.close
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy