我又遇到了一种情况,我花了很多时间来尝试根据我的需要自定义 datasnap 回调示例。我是老派 OOP 程序员,在我的“工具箱”PODO 样式中有几个非常大的对象层次结构 :-) .. 拥有这个出色的数据快照功能,我想利用回调的力量。
但是 - 当我实现它时......它只是失败了......(FASTMM4报告内存泄漏)。
尝试创建一个简单的 VCL 数据快照服务器 - TCP。并添加一个按钮和这个来源......
procedure TForm1.Button1Click(Sender: TObject);
var
// AObject : TObject;
aJSONVal : TJSONValue;
begin
// AObject := TObject.Create;
// ServerContainer1.DSServer1.BroadcastObject('SomeChannel','SomeCallbackID', AObject);
// AObject.Free;
aJSONVal := TJSONObject.Create;
ServerContainer1.DSServer1.BroadcastMessage('SomeChannel','SomeCallbackID',aJSONVal);
// aJSONVal.Free; // Mat pointed out that this is done by the broadcast.
end;
它会起作用-只要您继续使用 TJSONValue ...但是尝试切换注释的代码-您会明白我的意思。
我当然可以将所有现有代码更改为 JSON ......但这根本不可接受。
有谁知道如何使用 BroadcastOBJECT 或 NotifyOBJECT ?
问候 Bjarne