游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2043|回复: 0

2013.09.04更新——【Firefly API 新版文档】 Package Netconnect

[复制链接]

119

主题

119

帖子

694

积分

版主

Rank: 7Rank: 7Rank: 7

积分
694
发表于 2013-9-23 12:41:13 | 显示全部楼层 |阅读模式
package netconnect

该包中包含的服务端与客户端通信的一些处理方法,包括发送数据的封装,协议头的封装,tcp通信时进行分包,处理粘包问题。

class Connection
与客户端的一条连接对象,通过他可以与客户端进行通信,主动断开连接,主动推送消息等。

loseConnection
断开与客户端的连接
  1. type method
  2. //cwd firefly/ netconnect / connection.py
  3. Params loseConnection(self)
复制代码
safeToWriteData
向客户端发送消息
  1. type method
  2. //cwd firefly/ netconnect / connection.py
  3. Params safeToWriteData(self,topicID,msg)
复制代码
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
  1. type method
  2. //cwd firefly/ netconnect / datapack.py
  3. Params setHEAD_0(HEAD_0)
复制代码
HEAD_0 协议头0  int型
将协议头0设置为HEAD_0

setHEAD_1
设置协议头1
  1. type method
  2. //cwd firefly/ netconnect / datapack.py
  3. Params setHEAD_1(HEAD_1)
复制代码
HEAD_1 协议头1  int型
将协议头1设置为HEAD_1

setHEAD_2
设置协议头2
  1. type method
  2. //cwd firefly/ netconnect / datapack.py
  3. Params setHEAD_2(HEAD_2)
复制代码
HEAD_2 协议头2  int型
将协议头2设置为HEAD_2

setHEAD_3
设置协议头3
  1. type method
  2. //cwd firefly/ netconnect / datapack.py
  3. Params setHEAD_3(HEAD_3)
复制代码
HEAD_3 协议头3  int型
将协议头3设置为HEAD_3

setprotoVersion
协议头版本号
  1. type method
  2. //cwd firefly/ netconnect / datapack.py
  3. Params setprotoVersion(protoVersion)
复制代码
protoVersion 协议头版本号  int型
    将协议头版本号设置为protoVersion

setserverVersion
设置服务版本号
  1. type method
  2. //cwd firefly/ netconnect / datapack.py
  3. Params setserverVersion(serverVersion)
复制代码
serverVersion 服务版本号  int型
将服务版本号设置为serverVersion

getHeadLenght
获取数据包的长度
  1. type method
  2. //cwd firefly/ netconnect / datapack.py
  3. Params getHeadLenght()
复制代码
返回值为 17

unpack
解包
  1. type method
  2. //cwd firefly/ netconnect / datapack.py
  3. Params unpack(dpack)
复制代码
Dpack 打包好的数据  str型
将打包好的数据解析出来,返回一个字典{'result':xxx,'command':xxx,'lenght':xxx},其中result表示解析是否成功,command表示指令号,lenght表示传过来的信息的长度

pack
打包数据包
  1. type method
  2. //cwd firefly/ netconnect / datapack.py
  3. Params pack(response,command)
复制代码
Response 要打包的数据
Command 指令号
返回打包后的数据

class ConnectionManager
连接管理器
getNowConnCnt
获取当前连接数量
  1. type method
  2. //cwd firefly/ netconnect / manager.py
  3. Params getNowConnCnt()
复制代码
返回当前连接数量

addConnection
加入一条连接
  1. type method
  2. //cwd firefly/ netconnect / manager.py
  3. Params addConnection(conn)
复制代码
Conn 连接对象 object型

dropConnectionByID
根据连接的id删除连接实例
  1. type method
  2. //cwd firefly/ netconnect / manager.py
  3. Params dropConnectionByID(connID)
复制代码
connID 连接id  int型

getConnectionByID
根据ID获取一条连接
  1. type method
  2. //cwd firefly/ netconnect / manager.py
  3. Params getConnectionByID(connID)
复制代码
connID 连接id  int型
返回连接对象,若无则返回None

loseConnection
根据连接ID断开与客户端的连接
  1. type method
  2. //cwd firefly/ netconnect / manager.py
  3. Params loseConnection(connID)
复制代码
connID 连接id  int型

pushObject
主动推送消息
  1. type method
  2. //cwd firefly/ netconnect / manager.py
  3. Params pushObject(topicID , msg, sendList)
复制代码
topicID 指令号id int型
msg 要发送的信息 str型
SendList 要发送消息的连接对象列表  list型  [object,object]
通过指令号为topicID的方法将msg发送给列表中所有的连接对象连接的客户端

class LiberateProtocol
与客户端通信协议类
connectionMade
与客户端连接建立时候的处理
  1. type method
  2. //cwd firefly/ netconnect / protoc.py
  3. Params connectionMade()
复制代码
connectionLost
处理与客户端连接断开时候的处理
  1. type method
  2. //cwd firefly/ netconnect / protoc.py
  3. connectionLost(reason)
复制代码
safeToWriteData
向客户端发送数据
  1. type method
  2. //cwd firefly/ netconnect / protoc.py
  3. safeToWriteData(data,command)
复制代码
data 要向客户端写的数据 str型
Command 指令号 int型

dataHandleCoroutine
    接受客户端数据处理的协程。
  1. type method
  2. //cwd firefly/ netconnect / protoc.py
  3. Params dataHandleCoroutine()
复制代码
dataReceived
数据到达处理
@param data: str 客户端传送过来的数据
  1. type method
  2. //cwd firefly/ netconnect / protoc.py
  3. Params dataReceived(data)
复制代码

class LiberateFactory

    协议工厂

setDataProtocl
    设置数据包协议
  1. type method
  2. //cwd firefly/ netconnect / protoc.py
  3. Params setDataProtocl(dataprotocl)
复制代码
dataprotocl 协议实例 instance型
    自定义数据包协议

doConnectionMade
当连接建立时的处理
  1. type method
  2. //cwd firefly/ netconnect / protoc.py
  3. Params doConnectionMade(conn)
复制代码

doConnectionLost

连接断开时的处理
  1. type method
  2. //cwd firefly/ netconnect / protoc.py
  3. Params doConnectionLost(conn)
复制代码
addServiceChannel
添加服务通道
  1. type method
  2. //cwd firefly/ netconnect / protoc.py
  3. Params addServiceChannel(service)
复制代码
service 服务实例 instance型

doDataReceived
数据到达时的处理
  1. type method
  2. //cwd firefly/ netconnect / protoc.py
  3. Params doDataReceived(conn,commandID,data)
复制代码
produceResult
产生客户端需要的最终结果
@param response: str 分布式客户端获取的结果
  1. type method
  2. //cwd firefly/ netconnect / protoc.py
  3. Params produceResult(command,response)
复制代码
command 指令号 int型
response 要传送的数据
返回根据协议打包后的数据

loseConnection
主动断开与客户端的连接
  1. type method
  2. //cwd firefly/ netconnect / protoc.py
  3. Params loseConnection(connID)
复制代码
connID 连接id  int型
根据连接ID断开与客户端的连接

pushObject
服务端向客户端推消息
  1. type method
  2. //cwd firefly/ netconnect / protoc.py
  3. Params pushObject(topicID , msg, sendList)
复制代码
topicID: int 指令号
msg: 消息的内容,protobuf结构类型
sendList: 推向的目标列表(客户端id 列表)
使用指令号topicID向目标列表sendList中所有客户端发送消息msg


您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2024-4-25 07:02

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表