我正在为delphi寻找一个通信框架,我们知道有很多其他语言的通信框架,wcf,ecf等等,但是到目前为止,我已经找到了delphi的那个,任何了解它的人都可以给我一个思想?
我需要一些要求,如下:
构建应用程序(服务器或客户端),而不关心如何在两个端点之间相互通信。
想象一下,我们使用邮箱来交换消息,似乎通信是透明的。
支持扩展通信协议。
我们经常需要在2个设备之间交换消息,但通信协议不是公共协议或通用协议,因此我们需要扩展框架,以实现完全接收或发送消息的通信协议。
支持异步和同步通信
支持传输协议扩展。
传输协议可以通过winsocket,pipes,com,windows message,mailslot等实现。
在客户端应用程序中,我们可以编写如下代码剪辑:
var
server: TDelphiCommunicationServer;
session : ICommunicationSession;
request, response: IMessage;
begin
session := server.CreateSession('IP', Port);
request := TLoginRequest.Create;
session.SynSendMessage(request);
session.WaitForMessage(response, INFINITE);
.......
end;
在上面的代码片段中,TLoginRequest实现了消息接口。
答案 0 :(得分:14)
也许RemObjects SDK是您正在寻找的东西。它是一个WCF,就像一个通信框架的抽象,你可以在其中改变消息格式,频道类型等等。它随时可以使用诸如winsockets,管道和窗口消息之类的different channels。
答案 1 :(得分:4)
看看Delphi附带的Indy。它是一个成熟的通信框架,可以在很多应用程序中使用。
答案 2 :(得分:1)
要编写用于我们的应用程序的自定义TCP IP客户端和服务器组件,我们使用Francois Piette的Internet组件套件和各种项目的Real Thin Client SDK(RTC SDK)。其他人使用Indy开发自定义TCP / IP协议客户端/服务器组件。
要构建一个可以轻松“远程”使用的API,您可以使用DCOM(不推荐!)或其中一个“远程处理工具包”,如RemObjects SDK(推荐!)。
答案 3 :(得分:0)
DataSnap是Delphi附带的产品,自2009年以来,它已被重新设计为WCF,与之前的版本相比功能更强大,
答案 4 :(得分:0)
我有一个开源框架(在过去10年中开发),它可以完成您所需的一切以及实现线程框架等等。您可以在http://www.csinnovations.com/framework_delphi.htm找到它。
干杯,Misha
答案 5 :(得分:0)
对于Delphi和Free Pascal的高级面向消息的中间件 Habari Client libraries可以是一个选项。它们支持对等和发布/订阅通信模型,与Internet Direct(Indy)和Synapse网络库一起工作,并支持序列化对象(JSON或XML)的交换。 (我是这些图书馆的开发者)。