FObjBase
表示本地
连接状态改变
已经成功连接上
使能
client->server;
setvalue 不能改!!!
client->server;
getvalue 不能改!!!
client->server;
callfunction 不能改!!!
client->server;
config_sense 不能改!!!
client->server
callfunction 的参数很长,需要多次发送
client->server
callfunction 的返回很长,需要多次请求获取
client->server
obj 已经不在了, 释放资源
server->client;
getvalue 返回 不能改!!!
server->client;
callfunction 返回 不能改!!!
server->client;
pushinfo 不能改!!!
server->client
callfunction 的参数很长,需要多次发送
server->client
callfunction 的返回很长,需要多次请求获取
建议使用方法:
做为客户端,都使用 FObjSys.Current 连接不同的客户端
做为服务器,当要提供2个Obj服务, 应该要使用 Currents[index]
这套逻辑已经潜入到 每个 FObj 中, FObj.CurrObjSys, 就是对应的 Obj服务
添加OBJ 入 本地OBJSys
获取一个没有被分配的 Obj ID
创建了一个远端服务的客户代理, 删除这个代理;
还需要通知远端,这个代理已经不存在,与它相关的推送,都要关闭
当没有一个obj 与远端服务连接,socket也会被释放
连接到远端的OBJSys连接
远端地址
连接成功后,通知这些obj
断开到远端OBJSys的连接
远端地址
连接成功后,通知这些obj
注册本地obj 为远端obj的敏感对象,得到远端obj的推送消息
远端对应的连接代理
远端的ID
本地obj
注册的敏感源
动作,添加?删除?
对外发送消息
远端对应的连接代理
远端的ID
本地的ID
交易码
信息码
信息内容
向远端GetValue
远端对应的连接代理
远端的ID
本地的ID
成员ID
向远端SetValue
远端对应的连接代理
远端的ID
本地的ID
成员ID
成员内容
向远端CallFunction
远端对应的连接代理
远端对象ID
本地对象ID
函数ID
函数参数
在其上调用异步调用的委托对象
作为 BeginInvoke 方法调用的最后一个参数而提供的对象
向远端CallFunction
远端对应的连接代理
远端对象ID
本地对象ID
函数ID
函数参数
添加OBJ 入 本地OBJSys
本地OBJSys 删除指定OBJ
启动本地OBJSys网络
本地地址
建立成功后,通知这些obj
指定推送到某个远端
本地obj
信息码
信息内容
连接conn
目标obj
推送到远端,系统判定根据敏感对象推送
本地obj
信息码
信息内容
推送到远端,系统判定根据敏感对象推送,但不推送给特定某对象
本地的obj
信息码
信息内容
排除在外的连接conn
排除在外的目标obj
回复 客户端的CallFunction
客户端对应的连接代理
本地服务端的对象ID
客户端的对象ID
交易码
函数ID
函数参数
在其上调用异步调用的委托对象
作为 BeginInvoke 方法调用的最后一个参数而提供的对象
交易列表
添加OBJ到系统
对外发送消息
远端对应的连接代理
远端的ID
本地的ID
交易码
信息码
信息内容
指定推送到某个远端
推送到远端,系统判定根据敏感对象推送
推送到远端,系统判定根据敏感对象推送,但不推送给特定某对象
回复 客户端的CallFunction
客户端对应的连接代理
客户端的对象ID
本地服务端的对象ID
交易码
函数ID
函数返回
获取没用使用的OBJID
从系统删除OBJ
作为客户端,从系统删除OBJ;
还会通知服务器,断开与这个 OBJ 的所有连接
连接到远端的OBJSys连接
远端地址
连接成功后,通知这些obj
断开到远端OBJSys的连接
远端地址
连接成功后,通知这些obj
注册本地obj 为远端obj的敏感对象,得到远端obj的推送消息
远端对应的连接代理
远端的ID
本地obj
注册的敏感源
动作,添加?删除?
向远端GetValue
远端对应的连接代理
远端的ID
本地的ID
成员ID
向远端SetValue
远端对应的连接代理
远端的ID
本地的ID
成员ID
成员内容
向远端CallFunction
远端对应的连接代理
远端对象ID
本地对象ID
函数ID
函数参数
在其上调用异步调用的委托对象
作为 BeginInvoke 方法调用的最后一个参数而提供的对象
向远端CallFunction
远端对应的连接代理
远端对象ID
本地对象ID
函数ID
函数参数
通过objid 查找 obj
获取一个没有被分配的 交易码
作为客户端,与服务器连续状态改变
作为服务器端,客户的登陆与退出
作为服务器端,客户端 的 某obj 注销了,把它相关的都删除
本地,给Protocol的函数指针;
GetValue
远端对应的连接代理
远端对象ID
本地对象ID
本地,给Protocol的函数指针;
SetValue
远端对应的连接代理
远端对象ID
本地对象ID
本地,给Protocol的函数指针;
CallFunction
远端对应的连接代理
远端对象ID
本地对象ID
本地,给Protocol的函数指针;
Sense_Config
远端对应的连接代理
远端对象ID
本地对象ID
远端对象 关注 本地对象 的敏感源
动作,添加?删除?
从异端接收的数据,解释数据
从异端接收的数据,解释数据
消息推送的敏感对象
包总大小, -1 ,大小未知
交易号, 服务器分配的
数据
通知连接成功,失败
远端对应的连接代理, 里面有IP, 连接的状态
自己解析远端的数据;
当ProcessEx返回 非0, 系统解析数据,对应调用GetValue,SetValue,CallFunction,PushInfo
建议都返回 非0
远端对应的连接代理
远端的OBJID
交易码
信息码
信息内容
返回数据
0:成功;非0:不支持
作为客户端, 服务器回复GetValue
与服务器的连接代理
服务器的OBJID
成员ID
成员数据
作为客户端, 服务器回复CallFunction
与服务器的连接代理
服务器的OBJID
交易号
功能ID
回复的数据
以前客户端调用CallFunction时,放入的函数指针
以前客户端调用CallFunction时,放入的object
远端消息推送到本地
远端对应的连接代理
远端的OBJID
消息ID
消息数据
远端获取本地成员数据
远端对应的连接代理
远端的OBJID
成员ID
成员数据
远端设置本地成员数据
远端对应的连接代理
远端的OBJID
成员ID
成员数据
远端执行本地函数, 如果有数据返回,需要自己 SendMessageEx
远端对应的连接代理
远端的OBJID
交易号
函数ID
参数
OBJID
作为对外的接口,ID必须明确定义好,应该在构造函数时,作为参数传入;
对应只用于代理,ID按顺序排序,顺便。。。
obj 会自动加入到 objsys中,ID也会自动按顺序分配,也可以手动修改,但都应该在构造函数完成
循环执行模块,可以认为就是定时器系统
静态的实例,平常就是只用它
精确执行,也就是一次OnPoll 一直While ,直到时间结束
以100ms 为周期, 多次执行
以100ms 为周期, 多次执行
多次周期执行
添加或删除 poll func, 当pollfunc 本来已经存在,再次添加,只会使计时重新,或不管!!
动作,添加?删除?
周期执行函数
时间间隔
重新计算数据
立刻执行?
该函数的拥有者
对func的标识码
只执行一次
只为了延时操作,同一周期多次添加同一func,只会调到一次!!!
不需要自己创建实例,因为已经创建了静态的对象
启动OnPoll
停止OnPoll
Poll_Config 的动作,添加,删除
添加
删除
循环执行的事件