aardio 文档

wsock.tcp.asyncServer 库模块帮助文档

HTTP 服务端开发指南

tcpasyncServerObject 成员列表 #

tcpasyncServerObject._beforeStop #

tcpasyncServerObject._beforeStop = function(){
    /*服务端关闭以前触发  
此回调函数是标准库保留接口  
用户不应使用此回调*/
}

tcpasyncServerObject._onClientClosed #

tcpasyncServerObject._onClientClosed = function(hSocket){
    /*客户端连接已经关闭时触发  
此函数在连接断开后一定会被触发  
此回调函数是标准库保留接口  
用户不应使用此回调*/
}

tcpasyncServerObject.acceptCount #

当前连接数,不可改动该值

tcpasyncServerObject.beforeStop #

tcpasyncServerObject.beforeStop = function(){
    /*服务端关闭以前触发*/
}

tcpasyncServerObject.bind(IP,端口) #

绑定 IP 与端口。
应当由 start 函数自动调用此函数。

tcpasyncServerObject.clearKeepAliveTimeout() #

关闭所有超出keepAliveTimeout限制的超时连接
在连接超出最大连接数时,此函数会被自动调用

tcpasyncServerObject.client() #

返回对象:tcpaclientObject

tcpasyncServerObject.client(hSocket) #

用于获取客户端套接字对应的客户端对象

tcpasyncServerObject.clientBufferSize #

客户端套接字读写缓冲区大小,默认为1MB
缓冲区如果设置的太小,会导致过于频繁的调用读写函数

tcpasyncServerObject.getLocalIp() #

返回当前绑定的本地 IP,端口号

tcpasyncServerObject.getLocalPort() #

返回当前绑定的本地端口号

tcpasyncServerObject.getRemoteIp(hSocket) #

返回客户端IP地址,端口

tcpasyncServerObject.isClosed(hSocket) #

连接是否已关闭

tcpasyncServerObject.isConnected(hSocket) #

是否已连接并准备就绪

tcpasyncServerObject.keepAliveTimeout #

最大保持连接时间,以秒为单位,
负数表示不限时间

tcpasyncServerObject.listen(请求队列大小) #

监听构造函数绑定的 IP 端口,成功返回 true 。
已自动调用此函数。

tcpasyncServerObject.maxConnection #

最大连接数

tcpasyncServerObject.serverAddress #

服务端监听地址

返回对象:sockaddrInObject

tcpasyncServerObject.shutdown() #

断开 TCP 服务端

tcpasyncServerObject.start(IP,端口,请求队列大小) #

启动单线程异步TCP服务端,成功返回true,失败返回null,

如果不写IP,则默认设为"0.0.0.0"也即监听本机所有IP,访问此服务端也不限制IP
限制仅本机可以访问建议写127.0.0.1

端口为0或省略则自动查找1025以后的空闲端口
注意0-1023为系统通用服务保留端口,
1024-49151为用户服务端口,其中大约%9已由IANA注册分配
49152-65535为私有或临时端口

tcpasyncServerObject.stop() #

关闭 TCP 服务端

tcpasyncServerObject 事件列表 #

tcpasyncServerObject.onClientClosed #

tcpasyncServerObject.onClientClosed = function(hSocket){
    /*客户端连接已经关闭时触发  
此函数在连接断开后一定会被触发*/
}

tcpasyncServerObject.onClose #

tcpasyncServerObject.onClose = function(hSocket,err){
    var client = tcpasyncServerObject.client(hSocket);

    /*已断开连接,  
如果缓冲区中仍然有数据,  
这个事件可能在其他事件前面触发  
主动调用close函数立即关闭连接,此事件不会被触发,  
但onClientClosed事件总会在关闭连接后触发*/ 
}

tcpasyncServerObject.onOpen #

tcpasyncServerObject.onOpen = function(hSocket,err){
    var client = tcpasyncServerObject.client(hSocket);

    /*已连接  
在这里可以开始发送数据*/ 
}

tcpasyncServerObject.onOutOfBandData #

tcpasyncServerObject.onOutOfBandData = function(hSocket,err){
    var client = tcpasyncServerObject.client(hSocket);

    /*收到紧急数据  
即send函数最后一个flag参数设为_MSG_OOB时发送的1字节带外数据*/      
}

tcpasyncServerObject.onRead #

tcpasyncServerObject.onRead = function(hSocket,err){
    var client = tcpasyncServerObject.client(hSocket);

    /*收到数据  
可阻塞读取数据  
定义了此事件就不应同时定义onReceive事件*/    
}

tcpasyncServerObject.onReceive #

tcpasyncServerObject.onReceive = function(hSocket,err){
    var client = tcpasyncServerObject.client(hSocket);

    /*收到数据  
仅读取已到达的数据  
定义了此事件就不应同时定义onRead事件*/   
}

tcpasyncServerObject.onSend #

tcpasyncServerObject.onSend = function(hSocket,err){
    var client = tcpasyncServerObject.client(hSocket);

    /*发送数据*/
}

tcpasyncServerObject.onStop #

tcpasyncServerObject.onStop = function(err){

    /*已停止服务端  
主动调用stop函数停止服务端时不会触发此事件*/ 
}

tcpasyncServerObject.clients 成员列表 #

这是一个包含所有客户端套接字的表对象
其中键为套接字句柄,值为 wsock.tcp.asyncClient对象

tcpasyncServerObject.clients.* #

返回对象:tcpaclientObject

wsock.tcp 成员列表 #

wsock.tcp.asyncServer() #

创建单线程异步TCP服务端

返回对象:tcpasyncServerObject

Markdown 格式