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 的动作,添加,删除 添加 删除 循环执行的事件