Back

CreateWebServer

Returns a WebServer object.

For more information in the detailed docs see CreateWebServer

  sock = app.CreateWebServer( port, options ) → app object - WebServer

Example - Example




function OnStart()
{
    var ip = app.GetIPAddress();

    if( ip == "0.0.0.0" )
    {
        alert( "Please Enable Wi-Fi" );
        app.Exit();
    }
    lay = app.CreateLayout( "linear", "VCenter,FillXY" );

    var s = "Type the following address into your" +
        " browser\n\n" + ip +":8080";
    txt = app.CreateText( s, 0.8, 0.5, "MultiLine" );
    txt.SetTextSize( 22 );
    lay.AddChild( txt );

    app.AddLayout( lay );

    serv = app.CreateWebServer( 8080 );
    serv.SetFolder( "/sdcard/DroidScript" );
    serv.Start();
}
    Copy     Copy All       Run      

Example - Example




function OnStart()
{
    var ip = app.GetIPAddress();

    if( ip == "0.0.0.0" )
    {
        alert( "Please Enable Wi-Fi" );
        app.Exit();
    }

    lay = app.CreateLayout( "linear", "VCenter,FillXY" );

    var s = "Type the following address into your" +
        " browser\n\n" + ip +":8080";
    txt = app.CreateText( s, 0.8, 0.5, "MultiLine" );
    txt.SetTextSize( 22 );
    lay.AddChild( txt );

    app.AddLayout( lay );

    serv = app.CreateWebServer( 8080, "Upload,ListDir" );
    serv.SetFolder( "/sdcard/DroidScript" );
    serv.AddServlet( "/message", OnServlet );
    serv.Start();
}

    function OnServlet( request, info )
    {
        serv.SetResponse( "Got it!" );
        app.ShowPopup( info.remoteAddress + " says: " + request.msg );
    }
    Copy     Copy All       Run      

Example - index.html




    <html>
    <head>
        <title>WebSockets Demo</title>

        <script>

            var count = 0;

            //Connect to server via web sockets.
            function Connect()
            {
                //Check web sockets are supported.
                if (!window.WebSocket)
                {
                    alert("WebSocket not supported by this browser");
                    return;
                }

                //Open web socket to phone.
                ws = new WebSocket( "ws://"+window.location.host );
                ws.onopen = ws_onopen;
                ws.onmessage = ws_onmessage;
                ws.onclose = ws_onclose;
                ws.onerror = ws_onerror;
            }

            //Send a message to the server.
            function Send()
            {
                ws.send( "Hello " + count++ );
            }

            //Handle socket open.
            function ws_onopen()
            {
                id_info.innerHTML = "Socket Open";
            }

            //Handle messages from phone.
            function ws_onmessage( msg )
            {
                id_info.innerHTML = msg.data;
            }

            //Other websocket callbacks.
            function ws_onclose()
            {
                id_info.innerHTML = "Socket Closed";
            }

            function ws_onerror(e)
            {
                id_info.innerHTML = "Socket Error: " + e.data;
            }
        </script>
    </head>

    <body>
        <h2>DroidScript WebSockets Demo</h2>

        <div id="id_info">Ready</div>

        <button onclick="Connect()">Connect</button>
        <button onclick="Send()">Send Message</button>

    </body>
</html>
    Copy     Copy All       Run      

Example - WebSockets.js




    // Init variables.
    var count = 0;

    // Called when application is started.
    function OnStart()
    {
        // Check wifi is enabled.
        ip = app.GetIPAddress();
        if( ip == "0.0.0.0" ) {
            app.ShowPopup( "Please Enable Wi-Fi" );
            app.Exit();
        }

        // Prevent wifi from powering down.
        app.PreventWifiSleep();

        // Create a layout with objects vertically centered.
        lay = app.CreateLayout( "linear", "VCenter,FillXY" );

        // Create a text label and add it to layout.
        var s = "Type the following address into your" +
            " browser(s)\n\n" + ip +":8080";
        txt = app.CreateText( s, 0.8, 0.3, "AutoScale,MultiLine" );
        txt.SetTextSize( 22 );
        lay.AddChild( txt );

        // Create a text label and add it to layout.
        txtMsg = app.CreateText( "", 0.8, 0.3, "AutoScale,MultiLine" );
        txtMsg.SetTextSize( 22 );
        lay.AddChild( txtMsg );

        // Create a 'Send Message' button.
        btn = app.CreateButton( "Send Message", 0.4, 0.1);
        btn.SetMargins( 0, 0.05, 0, 0 );
        btn.SetOnTouch( SendMessage );
        lay.AddChild( btn );

        // Add layout to app.
        app.AddLayout( lay );

        // Create and run web server on port 8080.
        serv = app.CreateWebServer( 8080 );
        serv.SetFolder( "/sdcard/DroidScript/WebSockets" );
        serv.SetOnReceive( serv_OnReceive );
        serv.Start();

        // Start timer to show WebSock connections.
        setInterval( ShowConnections, 3000 );
    }

    // Show who is connected.
    function ShowConnections()
    {
        var clients = serv.GetWebSockClients();

        if( clients.length > 0 )
        {
            // Make a list of clients.
            var list = "";
            for( var i=0; i < clients.length; i++ )
            {
                list += clients[i].remoteAddress + "\n";
            }

            // Show client list.
            txt.SetText( list );
        }
    }

    // Send a message to all connected socket clients.
    function SendMessage()
    {
        // Note: You can send to a specific client by passing
        // the IP address as the second parameter.
        serv.SendText( "Hello " + count++ )
    }

    // Called when messages arrive from websocket clients.
    function serv_OnReceive( msg, ip )
    {
        txtMsg.SetText( ip + ": " + msg );
    }
    Copy     Copy All       Run      

The following methods are available on the WebServer object:

  GetType() → string: "WebServer"
  GetWebSockClients() → unknown
  Method( name, types, p1, p2, p3, p4 )
  SendText( txt, ip )
  Start()
  Stop()

boolean
string: "ListDir" or "Upload" or "NoWelcome" or "Reflect"
unknown
Returns the control class name.
string
string: comma separated: "boolean", "char", "byte", "short", "int", "long", "float", "double"
Allows access to other functions defined on the object in Java via reflection.
SetOnUpload