Class WebThingServer


  • public class WebThingServer
    extends fi.iki.elonen.router.RouterNanoHTTPD
    Server to represent a Web Thing over HTTP.
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      static class  WebThingServer.ActionHandler
      Handle a request to /actions/<action_name>.
      static class  WebThingServer.ActionIDHandler
      Handle a request to /actions/<action_name>/<action_id>.
      static class  WebThingServer.ActionsHandler
      Handle a request to /actions.
      static class  WebThingServer.BaseHandler
      Base handler that responds to every request with a 405 Method Not Allowed.
      static class  WebThingServer.ComplianceEventHandler  
      static class  WebThingServer.ComplianceHandler  
      static class  WebThingServer.EventHandler
      Handle a request to /events/<event_name>.
      static class  WebThingServer.EventsHandler
      Handle a request to /events.
      static class  WebThingServer.LoginHandler  
      static class  WebThingServer.MDMAttributesHandler
      Handle a request to /thinginfo/<property>.
      static class  WebThingServer.MultipleThings
      A container for multiple things.
      static class  WebThingServer.PropertiesHandler
      Handle a request to /properties.
      static class  WebThingServer.PropertyHandler
      Handle a request to /properties/<property>.
      static class  WebThingServer.SingleThing
      A container for a single thing.
      static class  WebThingServer.SSLOptions
      Class to hold options required by SSL server.
      static class  WebThingServer.ThingHandler
      Handle a request to /.
      static class  WebThingServer.ThingsHandler
      Handle a request to / when the server manages multiple things.
      • Nested classes/interfaces inherited from class fi.iki.elonen.router.RouterNanoHTTPD

        fi.iki.elonen.router.RouterNanoHTTPD.BaseRoutePrioritizer, fi.iki.elonen.router.RouterNanoHTTPD.DefaultHandler, fi.iki.elonen.router.RouterNanoHTTPD.DefaultRoutePrioritizer, fi.iki.elonen.router.RouterNanoHTTPD.DefaultStreamHandler, fi.iki.elonen.router.RouterNanoHTTPD.Error404UriHandler, fi.iki.elonen.router.RouterNanoHTTPD.GeneralHandler, fi.iki.elonen.router.RouterNanoHTTPD.IndexHandler, fi.iki.elonen.router.RouterNanoHTTPD.InsertionOrderRoutePrioritizer, fi.iki.elonen.router.RouterNanoHTTPD.IRoutePrioritizer, fi.iki.elonen.router.RouterNanoHTTPD.NotImplementedHandler, fi.iki.elonen.router.RouterNanoHTTPD.ProvidedPriorityRoutePrioritizer, fi.iki.elonen.router.RouterNanoHTTPD.StaticPageHandler, fi.iki.elonen.router.RouterNanoHTTPD.UriResource, fi.iki.elonen.router.RouterNanoHTTPD.UriResponder, fi.iki.elonen.router.RouterNanoHTTPD.UriRouter
      • Nested classes/interfaces inherited from class fi.iki.elonen.NanoHTTPD

        fi.iki.elonen.NanoHTTPD.AsyncRunner, fi.iki.elonen.NanoHTTPD.ClientHandler, fi.iki.elonen.NanoHTTPD.Cookie, fi.iki.elonen.NanoHTTPD.CookieHandler, fi.iki.elonen.NanoHTTPD.DefaultAsyncRunner, fi.iki.elonen.NanoHTTPD.DefaultServerSocketFactory, fi.iki.elonen.NanoHTTPD.DefaultTempFile, fi.iki.elonen.NanoHTTPD.DefaultTempFileManager, fi.iki.elonen.NanoHTTPD.IHTTPSession, fi.iki.elonen.NanoHTTPD.Method, fi.iki.elonen.NanoHTTPD.Response, fi.iki.elonen.NanoHTTPD.ResponseException, fi.iki.elonen.NanoHTTPD.SecureServerSocketFactory, fi.iki.elonen.NanoHTTPD.ServerRunnable, fi.iki.elonen.NanoHTTPD.ServerSocketFactory, fi.iki.elonen.NanoHTTPD.TempFile, fi.iki.elonen.NanoHTTPD.TempFileManager, fi.iki.elonen.NanoHTTPD.TempFileManagerFactory
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static android.content.Context context  
      • Fields inherited from class fi.iki.elonen.NanoHTTPD

        MIME_HTML, MIME_PLAINTEXT
    • Constructor Summary

      Constructors 
      Constructor Description
      WebThingServer​(android.content.Context context, com.gears42.iot.webthing.WebThingServer.ThingsType things)
      Initialize the WebThingServer on port 80.
      WebThingServer​(android.content.Context context, com.gears42.iot.webthing.WebThingServer.ThingsType things, java.lang.Integer port)
      Initialize the WebThingServer.
      WebThingServer​(android.content.Context context, com.gears42.iot.webthing.WebThingServer.ThingsType things, java.lang.Integer port, java.lang.String hostname)
      Initialize the WebThingServer.
      WebThingServer​(android.content.Context context, com.gears42.iot.webthing.WebThingServer.ThingsType things, java.lang.Integer port, java.lang.String hostname, WebThingServer.SSLOptions sslOptions)
      Initialize the WebThingServer.
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      static fi.iki.elonen.NanoHTTPD.Response createSocket​(java.util.HashMap<java.lang.String,​Thing> things, fi.iki.elonen.NanoHTTPD.IHTTPSession session)  
      static org.json.JSONObject parseBody​(fi.iki.elonen.NanoHTTPD.IHTTPSession session)  
      static java.util.Map<java.lang.String,​java.lang.String> splitQuery​(java.lang.String url)  
      void start​(boolean daemon)
      Start listening for incoming connections.
      void stop()
      Stop listening.
      • Methods inherited from class fi.iki.elonen.router.RouterNanoHTTPD

        addMappings, addRoute, normalizeUri, removeRoute, serve, setNotFoundHandler, setNotImplementedHandler, setRoutePrioritizer
      • Methods inherited from class fi.iki.elonen.NanoHTTPD

        closeAllConnections, getHostname, getListeningPort, getMimeTypeForFile, getServerSocketFactory, getTempFileManagerFactory, isAlive, makeSecure, makeSSLSocketFactory, makeSSLSocketFactory, makeSSLSocketFactory, mimeTypes, newChunkedResponse, newFixedLengthResponse, newFixedLengthResponse, newFixedLengthResponse, serve, setAsyncRunner, setServerSocketFactory, setTempFileManagerFactory, start, start, start, wasStarted
      • Methods inherited from class java.lang.Object

        equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • context

        public static android.content.Context context
    • Constructor Detail

      • WebThingServer

        public WebThingServer​(android.content.Context context,
                              com.gears42.iot.webthing.WebThingServer.ThingsType things)
                       throws java.io.IOException,
                              java.lang.NullPointerException
        Initialize the WebThingServer on port 80.
        Parameters:
        things - List of Things managed by this server
        Throws:
        java.io.IOException - If server fails to bind.
        java.lang.NullPointerException - If something bad happened.
      • WebThingServer

        public WebThingServer​(android.content.Context context,
                              com.gears42.iot.webthing.WebThingServer.ThingsType things,
                              java.lang.Integer port)
                       throws java.io.IOException,
                              java.lang.NullPointerException
        Initialize the WebThingServer.
        Parameters:
        things - List of Things managed by this server
        port - Port to listen on
        Throws:
        java.io.IOException - If server fails to bind.
        java.lang.NullPointerException - If something bad happened.
      • WebThingServer

        public WebThingServer​(android.content.Context context,
                              com.gears42.iot.webthing.WebThingServer.ThingsType things,
                              java.lang.Integer port,
                              java.lang.String hostname)
                       throws java.io.IOException,
                              java.lang.NullPointerException
        Initialize the WebThingServer.
        Parameters:
        things - List of Things managed by this server
        port - Port to listen on
        hostname - Host name, i.e. mything.com
        Throws:
        java.io.IOException - If server fails to bind.
        java.lang.NullPointerException - If something bad happened.
      • WebThingServer

        public WebThingServer​(android.content.Context context,
                              com.gears42.iot.webthing.WebThingServer.ThingsType things,
                              java.lang.Integer port,
                              java.lang.String hostname,
                              WebThingServer.SSLOptions sslOptions)
                       throws java.io.IOException,
                              java.lang.NullPointerException
        Initialize the WebThingServer.
        Parameters:
        things - List of Things managed by this server
        port - Port to listen on
        hostname - Host name, i.e. mything.com
        sslOptions - SSL options to pass to the NanoHTTPD server
        Throws:
        java.io.IOException - If server fails to bind.
        java.lang.NullPointerException - If something bad happened.
    • Method Detail

      • start

        public void start​(boolean daemon)
                   throws java.io.IOException
        Start listening for incoming connections.
        Parameters:
        daemon - Whether or not to daemonize the server
        Throws:
        java.io.IOException - on failure to listen on port
      • stop

        public void stop()
        Stop listening.
        Overrides:
        stop in class fi.iki.elonen.NanoHTTPD
      • splitQuery

        public static java.util.Map<java.lang.String,​java.lang.String> splitQuery​(java.lang.String url)
                                                                                 throws java.io.UnsupportedEncodingException
        Throws:
        java.io.UnsupportedEncodingException
      • parseBody

        public static org.json.JSONObject parseBody​(fi.iki.elonen.NanoHTTPD.IHTTPSession session)
      • createSocket

        public static fi.iki.elonen.NanoHTTPD.Response createSocket​(java.util.HashMap<java.lang.String,​Thing> things,
                                                                    fi.iki.elonen.NanoHTTPD.IHTTPSession session)