欢迎来9秒:www.9miao.com
package netconnect
该包中包含的服务端与客户端通信的一些处理方法,包括发送数据的封装,协议头的封装,tcp通信时进行分包,处理粘包问题。
class Connection
与客户端的一条连接对象,通过他可以与客户端进行通信,主动断开连接,主动推送消息等。
loseConnection
断开与客户端的连接 safeToWriteData
向客户端发送消息 topicID 指令号id int型
msg 要发送的信息 str型
通过指令号为topicID的方法将msg发送给客户端
class DataPackProtoc
数据包协议的定义。实例化时,需传入 HEAD_0: int 协议头0
HEAD_1: int 协议头1
HEAD_2: int 协议头2
HEAD_3: int 协议头3
protoVersion: int 协议头版本号
serverVersion: int 服务版本号
这些参数组成一个完整的协议头,如果实例化不传这些参数,则默认都为0,也可在实例化后使用下方法自定义设置
setHEAD_0
设置协议头0 HEAD_0 协议头0 int型
将协议头0设置为HEAD_0
setHEAD_1
设置协议头1 HEAD_1 协议头1 int型
将协议头1设置为HEAD_1
setHEAD_2
设置协议头2 HEAD_2 协议头2 int型
将协议头2设置为HEAD_2
setHEAD_3
设置协议头3 HEAD_3 协议头3 int型
将协议头3设置为HEAD_3
setprotoVersion
协议头版本号 protoVersion 协议头版本号 int型
将协议头版本号设置为protoVersion
setserverVersion
设置服务版本号 serverVersion 服务版本号 int型
将服务版本号设置为serverVersion
getHeadLenght
获取数据包的长度 返回值为 17
unpack
解包 Dpack 打包好的数据 str型
将打包好的数据解析出来,返回一个字典{'result':xxx,'command':xxx,'lenght':xxx},其中result表示解析是否成功,command表示指令号,lenght表示传过来的信息的长度
pack
打包数据包 Response 要打包的数据
Command 指令号
返回打包后的数据
class ConnectionManager
连接管理器
getNowConnCnt
获取当前连接数量 返回当前连接数量
addConnection
加入一条连接 Conn 连接对象 object型
dropConnectionByID
根据连接的id删除连接实例 connID 连接id int型
getConnectionByID
根据ID获取一条连接 connID 连接id int型
返回连接对象,若无则返回None
loseConnection
根据连接ID断开与客户端的连接 connID 连接id int型
pushObject
主动推送消息 topicID 指令号id int型
msg 要发送的信息 str型
SendList 要发送消息的连接对象列表 list型 [object,object]
通过指令号为topicID的方法将msg发送给列表中所有的连接对象连接的客户端
class LiberateProtocol
与客户端通信协议类
connectionMade
与客户端连接建立时候的处理 connectionLost
处理与客户端连接断开时候的处理 safeToWriteData
向客户端发送数据 data 要向客户端写的数据 str型
Command 指令号 int型
dataHandleCoroutine
接受客户端数据处理的协程。 dataReceived
数据到达处理
@param data: str 客户端传送过来的数据
class LiberateFactory
协议工厂
setDataProtocl
设置数据包协议 dataprotocl 协议实例 instance型
自定义数据包协议
doConnectionMade
当连接建立时的处理
doConnectionLost
连接断开时的处理 addServiceChannel
添加服务通道 service 服务实例 instance型
doDataReceived
数据到达时的处理 produceResult
产生客户端需要的最终结果
@param response: str 分布式客户端获取的结果 command 指令号 int型
response 要传送的数据
返回根据协议打包后的数据
loseConnection
主动断开与客户端的连接 connID 连接id int型
根据连接ID断开与客户端的连接
pushObject
服务端向客户端推消息 topicID: int 指令号
msg: 消息的内容,protobuf结构类型
sendList: 推向的目标列表(客户端id 列表)
使用指令号topicID向目标列表sendList中所有客户端发送消息msg