HTTP服务端
支持文件上传,下载,下载支持断点续传
支持多线程处理请求
默认文档,默认为"main.aardio",
如果访问硬盘上存在的目录,request.path 尾部不加斜杠会自动跳转到以斜杠结束的路径
如果访问嵌入资源目录,只有 request.path 以斜杠才会访问默认文档,
对于访问嵌入资源文件,建议指定完整的文件路径,
默认文档主要是用于硬盘上的网站
网站基准目录,在启动服务端之前设置才会生效。
不会修改网站根目录(用作 aardio 应用程序基准目录),支持硬盘目录与资源目录,
这个属性应当设置为应用程序基准目录下的相对路径,
例如 "/res/web/"
注意: request.path 前面包含 documentBase 目录。
而 request.pathInfo 忽略 documentBase 目录
网站根目录(用作 aardio 应用程序基准目录),默认为/。
只能设置为硬盘上实际存在的目录,在启动服务端之前设置才会生效。
改变此目录,会同时改变
服务端代码中的应用程序基准目录以及用户库目录,
如果只是相将所有请求路径转向某个目录,应当改用 documentBase 属性
如果网站在嵌入资源目录中,应当改用 documentBase 属性
返回对象:HttpSimpleServerMainObject
wsock.tcp.simpleHttpServer.mainThread(
function(response,request,session){
response.loadcode( request.path /*可省略,可增加多个模板参数,
在被调用文件的函数外部可使用owner参数获取首个模板参数,
也可以使用...获取多个模板参数*/ );
}
);
返回 SPA 单页应用首页网址
参数指定 SPA 单页应用首页路径,
404错误页也会自动设置到该路径,
返回首页网址
可选用参数 @documentBase 指定根目录
以避免网页不支持非根目录路径。
可选用 @app 参数指定处理 HTTP 请求的线程函数,
该线程函数有 response,request,session 等三个回调参数
查找可用端口创建 HTTP 服务器线程,返回返回完整 URL
此服务端限制使用本机IP 127.0.0.1 访问,并随机分配端口不会出现端口冲突
如果HTTP服务器已启动则直接返回URL而不是重复启动服务器,
注意当前线程结束时,此服务器线程会自动退出
查找可用端口创建 HTTP 服务器线程,返回返回完整 URL
如果 HTTP 服务器已启动则直接返回 URL 而不是重复启动服务器。
省略参数返回首页URL,尾部不包含斜杠。
可选用 @path 参数指定请求目标文件的相对路径。
可选使用参数 @documentRoot 指定网站根目录,默认为"/"。
documentRoot 只能设为硬盘实际存在的目录,并会改变用户库与应用根目录,
如只想改变网页根目录请设置 wsock.tcp.simpleHttpServer.documentBase。
可选用 @app 参数指定处理 HTTP 请求的线程函数,
该线程函数有 response,request,session 等三个回调参数。
也可以用参数@1 指定 @app 参数。
退出startUrl函数创建的HTTP服务器线程
设置 response.loadcode 函数处理 *.aardio 代码文件的模式。
值为 null 或者 "execute" 表示允许执行代码,默认为 null。
设为 "static" 则 aardio 文件可作为普通文件下载。
设为 "deny" 则禁止访问 aardio 文件。
HttpSimpleServerMainObject.customErrors = {
[404] = function(response){
response.status = "404 Not Found";
response.write("404 Not Found"); /*自定义错误页*/
}
}
默认文档,默认为"main.aardio",
如果访问硬盘上存在的目录,request.path 尾部不加斜杠会自动跳转到以斜杠结束的路径
如果访问嵌入资源目录,只有 request.path 以斜杠才会访问默认文档,
对于访问嵌入资源文件,建议指定完整的文件路径,
默认文档主要是用于硬盘上的网站
网站基准目录,在启动服务端之前设置才会生效。
不会修改网站根目录(用作 aardio 应用程序基准目录),支持硬盘目录与资源目录,
这个属性应当设置为应用程序基准目录下的相对路径,
例如 "/res/web/"
注意: request.path 前面包含 documentBase 目录。
而 request.pathInfo 忽略 documentBase 目录
网站根目录(用作 aardio 应用程序基准目录),默认为/。
只能设置为硬盘上实际存在的目录,在启动服务端之前设置才会生效。
改变此目录,会同时改变
服务端代码中的应用程序基准目录以及用户库目录,
如果只是相将所有请求路径转向某个目录,应当改用 documentBase 属性
如果网站在嵌入资源目录中,应当改用 documentBase 属性
返回服务端IP,端口
返回HTTP服务端访问网址,可选指定目录或文件路径
注意参数第一个字符不需要指定斜杠
如果参数@2为true,IP "0.0.0.0"替换为合适的内网IP而不是localhost
如果服务器启动失败不返回任何值
当前服务端唯一ID,字符串,
每次调用start函数都会改变这个属性的值
启动HTTP服务端
设置服务器端口,默认自动分配空闲端口
返回 SPA 单页应用首页网址
参数指定 SPA 单页应用首页路径,
404错误页也会自动设置到该路径,
返回首页网址
可选用参数 @documentBase 指定根目录以避免网页不支持非根目录路径
停止HTTP服务端
HttpSimpleServerMainObject.threadGlobal = {
/*在onThreadCreated事件触发前
添加HTTP服务监听线程的全局变量*/
}
设置服务器线程数,默认为2个线程
HttpSimpleServerMainObject.onThreadCreated = function(documentRoot,urlRoot){
/*一个HTTP服务监听线程准备就绪时触发此事件*/
}
服务端监听地址
HttpSimpleServerObject.beforeClose = function(){
/*服务器关闭前调用此函数*/
}
关闭 HTTP 服务端
设置 response.loadcode 函数处理 *.aardio 代码文件的模式。
值为 null 或者 "execute" 表示允许执行代码,默认为 null。
设为 "static" 则 aardio 文件可作为普通文件下载。
设为 "deny" 则禁止访问 aardio 文件。
HttpSimpleServerObject.customErrors[404] = function(response){
response.status = "404 Not Found";
response.write("404 Not Found"); /*自定义错误页处理函数,
注意这是线程函数,应遵守多线程规则,
也可以直接指定错误页路径*/
}
默认文档,默认为"main.aardio",设为 null 禁用默认文档。
在启动服务端之前设置才会生效,
如果访问硬盘上存在的目录,request.path 尾部不加斜杠会自动跳转到以斜杠结束的路径
如果访问嵌入资源目录,只有 request.path 以斜杠才会访问默认文档,
对于访问嵌入资源文件,建议指定完整的文件路径,
默认文档主要是用于硬盘上的网站
网站基准目录,在启动服务端之前设置才会生效。
不会修改网站根目录(用作 aardio 应用程序基准目录),支持硬盘目录与资源目录,
这个属性应当设置为应用程序基准目录下的相对路径,
例如 "/res/web/"
注意: request.path 前面包含 documentBase 目录。
而 request.pathInfo 忽略 documentBase 目录
网站根目录(用作 aardio 应用程序基准目录),默认为/。
只能设置为硬盘上实际存在的目录,在启动服务端之前设置才会生效。
改变此目录,会同时改变
服务端代码中的应用程序基准目录以及用户库目录,
如果只是相将所有请求路径转向某个目录,应当改用 documentBase 属性
如果网站在嵌入资源目录中,应当改用 documentBase 属性
返回当前绑定的IP,端口号
返回首页URL
如果参数@1为true,IP "0.0.0.0"替换为上网卡IP而不是localhost
服务器唯一ID,字符串。
所有继承自 wsock.tcp.server 的服务端。
在任何线程都可以调用 wsock.tcp.server.closeById 关闭服务端。
监听构造函数绑定的 IP 端口,成功返回 true 。
已自动调用此函数。
用于指定 WebDAV 共享文件根目录。
仅适用于实现了 WebDAV 协议的服务端,例如 web.dav.server 。
此目录不应当指向服务端应用程序基准目录,也即 documentRoot 目录。
在 documentRoot 目录下 /config 与 /lib 目录是受保护的目录,无法访问。
但如果 resourceRoot 指向 documentRoot 则可能会错误地列出这两个目录。
HTTP 服务端默认会禁止下载或执行 *.aardio 代码。
但如果 resourceRoot 指向 documentRoot,WebDAV 服务端文件系统模块可能绕过此限制。
HttpSimpleServerObject.run(
function(response,request,session,runArgs2){
response.loadcode( request.path /*可省略,可增加多个模板参数,
在被调用文件的函数外部可使用 owner 参数获取首个模板参数,
也可以使用 ... 获取多个模板参数*/ );
}
);
HttpSimpleServerObject.threadGlobal = {
/*在onThreadCreated事件触发前
添加HTTP服务监听线程的全局变量*/
}
设置服务器线程数,默认为2个线程
HttpSimpleServerObject.onThreadCreated = function(documentRoot,urlRoot){
/*一个HTTP服务监听线程准备就绪时触发此事件*/
}
创建HTTP服务端,所有参数可选,
如果不写IP,则默认设为"0.0.0.0"也即监听本机所有IP,访问此服务端也不限制IP
限制仅本机可以访问建议写127.0.0.1
端口为0或省略则自动选择未用端口
注意0-1023为系统通用服务保留端口,
1024-49151为用户服务端口,其中大约%9已由IANA注册分配
49152-65535为私有或临时端口