aardio 文档

aardio 范例: 设置多线程服务端

//设置多线程服务端
import win.ui;
/*DSG{{*/
mainForm = win.form(text="多线程服务端进阶";right=759;bottom=469)
mainForm.add(
edit={cls="edit";left=20;top=9;right=744;bottom=196;dl=1;dr=1;dt=1;edge=1;multiline=1;vscroll=1;z=1};
static={cls="static";text="Static";left=20;top=207;right=740;bottom=451;db=1;dl=1;dr=1;dt=1;z=2}
)
/*}}*/

import wsock.tcp.simpleHttpServer;

/*
可在 wsock.tcp.simpleHttpServer 名字空间指定 startUrl 函数的预设选项,
具体有哪些选项请查看 wsock.tcp.simpleHttpServer.startUrl() 函数源码。
直接使用 wsock.tcp.simpleHttpServer.mainThread 也行。
*/
namespace wsock.tcp.simpleHttpServer{
    //startIp = "0.0.0.0"; //不限制本机 IP
    //startPort = 8615; //不指定端口时会自动分配空闲端口
    threadGlobal = { mainForm = ..mainForm }; //指定 HTTP 服务线程的默认全局变量,注意定义线程函数的作用域同名变量不能是局部变量
}

//io.open() //打开控制台查看线程错误信息
var url = wsock.tcp.simpleHttpServer.startUrl( 
    function(response,request,session){

        response.write("hello <a href='/test/" + string.random(10) + "'>点这里</a>");
        mainForm.edit.print( "HTTP 请求:",request.path );

        /*
        如果想更高级一点,这里还可以来个 web.rpc.jsonServer,
        参考「范例 / Web 应用 / JSON / HTTP-RPC-JSON 服务端 」
        */
    }
);  

import web.form;
var wb = web.form(mainForm.static);
wb.go(url);

mainForm.show();
win.loopMessage();

Markdown 格式