KBEngine |
Proxy类
import KBEngine
父类
Base成员函数
def disconnect( self ): |
def getClientType( self ): |
def getClientDatas( self ): |
def giveClientTo( self, proxy ): |
def streamFileToClient( self, resourceName, desc="", id=-1 ): |
def streamStringToClient( self, data, desc="", id=-1 ): |
回调函数
def onClientDeath( self ): |
def onClientGetCell( self ): |
def onEntitiesEnabled( self ): |
def onGiveClientToFailure( self ): |
def onLogOnAttempt( self, ip, port, password ): |
def onStreamComplete( self, id, success ): |
属性
__ACCOUNT_NAME__ | 只读 string |
__ACCOUNT_PASSWORD__ | 只读 string |
clientAddr | 只读 |
entitiesEnabled | 只读 bool |
hasClient | 只读 bool |
roundTripTime | 只读 |
timeSinceHeardFromClient | 只读 |
详细描述
Proxy是Base的一个特殊类型,它继承自Base,它有一个关联的客户端。本身来说, 它就是一个代理客户端的实体,操控所有服务端向客户端的更新。不能在脚本直接创建Proxy类对象。成员函数文档
def disconnect( self ):
断开客户端连接。
def getClientType( self ):
功能说明:
这个函数返回客户端类型。
这个函数返回客户端类型。
返回:
UNKNOWN_CLIENT_COMPONENT_TYPE = 0, CLIENT_TYPE_MOBILE = 1, // 手机类 CLIENT_TYPE_WIN = 2, // pc, 一般都是exe客户端 CLIENT_TYPE_LINUX = 3 // Linux Application program CLIENT_TYPE_MAC = 4 // Mac Application program CLIENT_TYPE_BROWSER = 5, // web应用, html5,flash CLIENT_TYPE_BOTS = 6, // bots CLIENT_TYPE_MINI = 7, // Mini-Client CLIENT_TYPE_END = 8 // end |
def getClientDatas( self ):
功能说明:
这个函数返回客户端登录时和注册时所附带的数据。
此数据可用于运营系统扩展,如果连接了第三方账号服务,此数据会经过interfaces进程发往第三方服务系统。
这个函数返回客户端登录时和注册时所附带的数据。
此数据可用于运营系统扩展,如果连接了第三方账号服务,此数据会经过interfaces进程发往第三方服务系统。
返回:
tuple, 固定为2个元素的tuple(登陆数据bytes,注册数据bytes),第一个元素为登陆时客户端调用登陆时传入的datas参数, 第二个元素为注册时客户端调用注册所传入的datas参数。由于可以存储任意二进制数据,因此他们都是以bytes类型存在。 |
def giveClientTo( self, proxy ):
功能说明:
将客户端的控制器转交给另一个Proxy,当前的Proxy必须有一个客户端而目标Proxy则必须没有关联客户端,否则将会提示错误。
将客户端的控制器转交给另一个Proxy,当前的Proxy必须有一个客户端而目标Proxy则必须没有关联客户端,否则将会提示错误。
参看:
Proxy.onGiveClientToFailure |
参数:
proxy | 控制权将转交给这个实体。 |
def streamFileToClient( self, resourceName, desc="", id=-1 ):
参看:
Proxy.onStreamComplete |
参数:
resourceName | 要发送的资源名称,包含路径。 |
desc | 一个可选的字符串,发送给客户端的资源描述。 |
id | 一个16位的id,它的值完全取决于调用者。如果传入-1系统将会在队列里面选择一个没有在用的id。可以在客户端根据这个id做资源判断。 |
返回:
与这个下载关联的id。 |
def streamStringToClient( self, data, desc="", id=-1 ):
功能说明:
发送一些数据到当前实体绑定的客户端。如果客户端端口则数据被清除, 当客户端再次绑定到实体的时候才可调用这个函数。16位的id完全取决于调用者。
如果调用者没有指定这个ID则系统会分配一个未用过的id。可以在客户端根据这个id做资源判断。
你可以在Proxy的派生类中定义回调函数(onStreamComplete),所有数据成功发送给客户端时或下载失败时会调用这个回调函数。
参看:Proxy.onStreamComplete与客户端实体Entity.onStreamDataStarted和 Entity.onStreamDataRecv还有Entity.onStreamDataCompleted。
发送一些数据到当前实体绑定的客户端。如果客户端端口则数据被清除, 当客户端再次绑定到实体的时候才可调用这个函数。16位的id完全取决于调用者。
如果调用者没有指定这个ID则系统会分配一个未用过的id。可以在客户端根据这个id做资源判断。
你可以在Proxy的派生类中定义回调函数(onStreamComplete),所有数据成功发送给客户端时或下载失败时会调用这个回调函数。
参看:Proxy.onStreamComplete与客户端实体Entity.onStreamDataStarted和 Entity.onStreamDataRecv还有Entity.onStreamDataCompleted。
参数:
data | 要发送的字符串。 |
desc | 一个可选的字符串,发送给客户端的描述。 |
id | 一个16位的id,它的值完全取决于调用者。如果传入-1系统将会在队列里面选择一个没有在用的id。 |
返回:
与这个下载关联的id。 |
回调函数文档
def onClientDeath( self ):
如果在脚本中实现了此回调,这个方法将在客户端断开连接时被调用。 这个方法没有参数。
def onClientGetCell( self ):
如果在脚本中实现了此回调,当客户端能够调用实体的cell属性时,该回调被调用。
def onEntitiesEnabled( self ):
如果在脚本中实现了此回调,当实体可用时( 各种初始化完毕并且可以与客户端通讯 )该回调被调用。 这个方法没有参数。
注意:giveClientTo将控制权赋给了该实体时也会导致该回调被调用。
注意:giveClientTo将控制权赋给了该实体时也会导致该回调被调用。
def onGiveClientToFailure( self ):
如果在脚本中实现了此回调,当实体调用giveClientTo失败时,该回调被调用。这个方法没有参数。
def onLogOnAttempt( self, ip, port, password ):
如果在脚本中实现了此回调,这个函数在客户端尝试使用当前账号实体进行登录时触发回调。
这种情况通常是实体存在于内存中处于有效状态,最明显的例子是用户A使用此账号登录了,用户B使用同一账号进行登录,此时回调触发。
这个回调函数可以返回如下常量值:
KBEngine.LOG_ON_ACCEPT:允许新的客户端与实体进行绑定,如果实体已经绑定了一个客户端,之前的客户端将被踢出。
KBEngine.LOG_ON_REJECT:拒绝新的客户端与实体绑定。
KBEngine.LOG_ON_WAIT_FOR_DESTROY:等待实体销毁后再进行客户端绑定。
这种情况通常是实体存在于内存中处于有效状态,最明显的例子是用户A使用此账号登录了,用户B使用同一账号进行登录,此时回调触发。
这个回调函数可以返回如下常量值:
KBEngine.LOG_ON_ACCEPT:允许新的客户端与实体进行绑定,如果实体已经绑定了一个客户端,之前的客户端将被踢出。
KBEngine.LOG_ON_REJECT:拒绝新的客户端与实体绑定。
KBEngine.LOG_ON_WAIT_FOR_DESTROY:等待实体销毁后再进行客户端绑定。
参数:
ip | 尝试登录的客户端IP地址。 |
port | 尝试登录的客户端连接的端口。 |
password | 用户登录时使用的MD5密码。 |
def onStreamComplete( self, id, success ):
参数:
id | 与下载关联的id。 |
success | 成功与否。 |
属性文档
__ACCOUNT_NAME__
说明:
如果proxy是帐号则可以访问__ACCOUNT_NAME__得到帐号名。
如果proxy是帐号则可以访问__ACCOUNT_NAME__得到帐号名。
__ACCOUNT_PASSWORD__
说明:
如果proxy是帐号则可以访问__ACCOUNT_PASSWORD__得到帐号MD5密码。
如果proxy是帐号则可以访问__ACCOUNT_PASSWORD__得到帐号MD5密码。
clientAddr
这是一个tuple对象,包含了客户端的ip与端口。
entitiesEnabled
实体是否已经可用。在实体可用之前脚本不能与客户端进行通讯。
hasClient
Proxy是否绑定了一个客户端连接。
roundTripTime
在一段时间内服务器与这个Proxy绑定的客户端通讯平均往返时间。这个属性只在Linux下生效。
timeSinceHeardFromClient
最后一次收到客户端数据包时到目前为止所过去的时间(秒)。