User Tools

Site Tools


built_in:webserver

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

built_in:webserver [2015/07/08 10:33]
octazid add new methods
built_in:webserver [2016/07/16 01:37]
Line 1: Line 1:
-====== WebServer control ====== 
  
-===== Methods ===== 
-^ Method                                 ^ Description  ^ 
-| WebServer.AddServlet( path,callback )  |              | 
-| Webserver.GetWebSockClients()          |              | 
-| WebServer.SendText( txt, ip )          |              | 
-| WebServer.SetFolder( folder )          |              | 
-| WebServer.SetOnRecieve( callback)      |              | 
-| WebServer.SetResponse( text )          |              | 
-| WebServer.Start()                      |              | 
- 
-=====Example===== 
-//(Example taken from the DroidScript sample section)// 
- 
-<code javascript> 
-//Called when application is started.  
-function OnStart()  
- 
- //Check wifi is enabled.  
- var ip = app.GetIPAddress();  
- if( ip == "0.0.0.0" ) {   
- app.ShowPopup( "Please Enable Wi-Fi" );   
- app.Exit();  
- 
- //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\n\n" + ip +":8080";  
- txt = app.CreateText( s, 0.8, 0.5, "MultiLine" );  
- txt.SetTextSize( 22 );  
- lay.AddChild( txt );  
-   
- //Add layout to app.   
- app.AddLayout( lay );  
-   
- //Create and run web server.  
- serv = app.CreateWebServer( 8080, "Upload,ListDir" );  
- serv.SetFolder( "/sdcard/DroidScript" );  
- serv.AddServlet( "/message", OnServlet );  
- serv.Start();  
- 
- 
-//Handle servlet requests.  
-function OnServlet( request, info )  
- 
- serv.SetResponse( "Got it!" );  
- app.ShowPopup(  info.remoteAddress + " says: " + request.msg );  
- 
-</code> 
- 
- 
----- 
- 
- 
-=====WebSocket Sample===== 
-running on DroidScript V 1.23b and higher 
- 
-//(Sample posted by Dave Smart in the DroidScript Beta Forum)// 
- 
- 
-Create the following two files in one folder and call your folder "Web Sockets" 
- 
-<code html index.html> 
-<html> 
-<head> 
-<title>WebSocket 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 WebSocket Demo</h2> 
-  
- <div id="id_info">Ready</div> 
- <br><br> 
- <button onclick="Connect()">Connect</button> 
- <button onclick="Send()">Send Message</button> 
-   
-</body> 
-</html> 
-</code> 
- 
- 
-<code javascript Web Sockets.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/Web Sockets" ); 
-    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 ); 
-} 
-</code> 
built_in/webserver.txt · Last modified: 2016/07/16 01:37 (external edit)