RO38 –比较RemObjects SDK 通道「建议收藏」

RO38 –比较RemObjects SDK 通道「建议收藏」 RO38–比较RemObjectsSDK通道                                  本文汇总了RemObjectsSDK提供的通道:最通用的通道1)HTTP通道:使用www超文本传输协议的灵活,网络无关的通信.2)SuperTCP通道:在客户端服务端灵活通用的双向传输

大家好,又见面了,我是你们的朋友全栈君。 

RO38 –
比较
RemObjects SDK
通道                                   RO38 –比较RemObjects SDK 通道「建议收藏」
本文汇总了
RemObjects SDK
提供的通道
:
  • 最通用的通道
    • 1) HTTP 通道:使用www超文本传输协议的灵活,网络无关的通信.
    • 2) Super TCP 通道: 在客户端服务端灵活通用的双向传输.
    • 3) Super HTTP 通道– new in ‘Vinci’
  • 常用的通道Frequently used channels
    • 4) 以前的TCP通道: 通过TCP实现轻量级通信.
    • 5) Email 通道(Delphi): 与存在的Email组织异步通讯.
    • 6) Local 通道:直接应用程序内部通信.
    • 7) DLL 通道(Delphi): DLL中执行服务端逻辑,并通过标准的RemObjects SDK接口调用机制调用.
  • 很少使用的通道
    • 8) UDP and Broadcast 通道(Delphi): 轻量数据包通信.
    • 9) Named Pipe 通道:不使用TCP/IP的局域网内部的通信.
    • 10) WinMessage 通信(Delphi): 本机中的内部过程通信.
 
1) HTTP
通道
最常用的通道可能是基于超文本传输协议的
. HTTP
协议
,
组成
www
的基础
,

Internet
中最常用的协议之一
,

RemObjects SDK
中使用可以提供各种好处
:
  • 由于HTTP的广泛使用,这种协议可以在轻松用于受限的网络环境,如有防火墙或使用代理将客户端与Internet隔离. 如果终端用户可以通过浏览器访问网络,基于HTTP通道的客户端也非常可能运行.
  • 服务端地址使用标准的URL标识,这样用户可以轻松明确的处理地址.
  • 如果希望,HTTP通道可以提供人们能直接读取的服务端信息和开放的服务信息,并可以通过web浏览器查看.
总之
,HTTP
是当你位于扩展站点而无法控制网络时最好的协议
,
可以使你的客户端轻松的在各种类型的网络中工作
.
两种版本
(Delphi

.NET)
中都提供了
HTTP
客户端和服务端通道的几种实现
,
至于那种最好这取决于用户的偏爱和体会
.
所有的
HTTP
客户端都可以连接到
HTTP
服务端
,
反之亦然
.
值得一说的是基于
WinINET
的客户端通道
(Delphi

.NET)
可以使用
IE
浏览器的设置
,
包括使用代理和自动拨号规则
,
然而
Indy

Internet
数据包通道将使用实现于原始
TCP
之上的
HTTP.
对于
Delphi,BPDX
服务通道提供了最好的性能和灵活性
,
但是这比轻量的
Indy
服务通道需要更多的资源
.
客户端通道组件
:
  • IpHttpClientChannel (.NET)
  • WinInetHttpClientChannel (.NET)
  • TROIndyHttpChannel (Delphi)
  • TROWinInetHTTPChannel (Delphi)
  • TROSynapseHTTPChannel (Delphi)
服务端通道组件
:
  • IpHttpServerChannel (.NET)
  • HttpSysServerChannel (.NET)– new in ‘Vinci’ (see note)
  • WebProcessor (ASP.NET)
  • TROIndyHTTPServer (Delphi)
  • TROBPDXHttpServer (Delphi)
  • TROWebBrokerServer (Delphi)
 
注意
:
HttpSysServerChannel

使用从
IIS
共享的微软
HTTP
内核
,
这样允许
standalone
服务从
IIS web
服务中分派一个端口
.
2) Super TCP
通道
Super TCP
通道组件提供实用灵活的通信通道
,
使用永久连接实现真正的异步通讯和服务回调
.
在原始的
TCP
连接之上改进的客户自定义协议
,
这个通道允许使用传统通道类型所没有的高级特性
:
  • 保持实时连接,通过灵活的PING/PONG系统发现断开的连接(如由于网络繁忙)并无缝修复.
  • 结合服务端和客户端通信,可以使服务端向客户端主动的发送事件或异步响应,而不用去轮询,减少了网络流量提高了回调的效率.
  • 允许使用单通道同时发送多个请求.
这个通道广泛的用于需要事件和服务回调的情形
,
而且有防火墙和代理服务时也不要求使用基于
HTTP
的通道
.
客户端通道组件
:
  • SuperTcpClientChannel (.NET)
  • TROSuperTcpChannel (Delphi)
服务端通道组件
:
  • SuperTcpServerChannel (.NET)
  • TROSuperTcpServer (Delphi)
 
3) Super HTTP
通道
– new in ‘Vinci’
这个通道如
Super TCP
通道一样提供了双向通信
,
但是它基于
HTTP,
从而可以穿透防火墙和精确的代理
.
它比
Super TCP
通道的代价稍高一些
,
因为要在服务端使用两条连接
.
客户端通道组件
:
  • IpSuperHttpClientChannel (.NET)
  • WinInetSuperHttpClientChannel (.NET)
  • TROIndySuperHttpChannel (Delphi)
  • TROSynapseSuperHttpChannel (Delphi)
服务端通道组件
:
  • IpSuperHttpServerChannel (.NET)
  • HttpSysSuperHttpServerChannel (.NET)
  • SuperHttpWebProcessor (ASP.NET)
  • TROIpSuperHttpServer (Delphi)
 
4)
过期的
TCP
通道
TCP,
一种传输控制协议
,
是两种基于底层的使用
TCP/IP
网络堆栈的
Internet
通讯基本协议之一
,
在客户端和服务端通过连接提供数据传输
.
然而
TCP
也为更复杂的传输协议
(

HTTP,POP3

)
提供支持
,TCP
通道使用原始的
TCP
提供轻量协议
,
在传输消息中没有添加任何附加信息
.
当网络流量小并且没有使用防火墙时
TCP
通道是最好的选择
.
这时
TCP
通道可以提供方法调用的最好执行效率
.

Delphi

,BPDX
服务通道提供了最好的效率和高灵活行
,
但是要比轻量
Indy
服务通道需要更多的资源
.
客户端通道组件
:
  • IpTcpClientChannel (.NET)
  • TROIndyTcpChannel (Delphi)
服务端通道组件
:
  • IpTcpServerChannel (.NET)
  • TROIndyTcpServer (Delphi)
  • TROBPDXTcpServer (Delphi)
 
5) Email
通道
(Delphi)
Email
通道使用标准的
Email
和存在的
POP3

SMTP
服务执行异步通讯
,
向服务端发送请求并接收响应
.
客户端通道指定
Email
地址
,
并使用这个地址向服务端发送处理请求
.
服务端从
POP3
信箱中接收到邮件
,
处理请求
,
最后也使用
Email
的形式向客户端返回处理结果
.
客户端通道通过轮询其
POP3
信箱接收响应
.
这个通道适用于长时间执行
(
可能会超过单个客户端
Session
的有效时间
OutTime)
的请求
.
由于请求和响应在
POP3
信箱中是持续的
,
客户端发送请求后退出
,
而接收响应可能要在几小时或几天以后
.
同样
,
请求发送到服务端可能不会马上执行

服务端启动后将从其邮件箱中提取并处理邮件
.
客户端通道组件
:
  • TROEmailChannel (Delphi)
服务端通道组件
:
  • TROEmailServer (Delphi)
 
6) Local
通道
Local
通道允许
RemObjects SDK

.NET

Delphi
应用程序中基于单机通讯
;
使你可以轻松重用集成的客户端和服务端应用程序
,
或建立单层应用程序稍后可以简单的修改通道类型移为他用
.
关于第一方面将应用程序逻辑分为客户端和服务器然后又要在同一个执行文件中使用看起来可能没什么用处
,
这个通道在如下两种情形时很有帮助
,
特别是当结合
Data Abstract
数据库多层架构
:
  • 在保留扩充性的前提下实现一个单层应用程序,在需要的时候可以很容易的升级为三层解决方案.
  • 将多层应用重用与单层环境如出售单用户版本的产品,提供一个桌面版的客户机/服务器数据库前端.
在这两个案例或相似的情况下
,Local
通道可以简单的将客户端和服务端组合在一个应用程序中
,
但是仍然保留了逻辑上的多层次分离
.
客户端通道组件
:
  • LocalClientChannel (.NET)
  • TROLocalChannel (Delphi)
服务端通道组件
:
  • LocalServerChannel (.NET)
  • TROLocalServer (Delphi)
 
7) DLL
通道
(Delphi)
DLL
通道允许你在
DLL
内部执行服务逻辑
,
其使用标准的
RemObjects SDK
调用机制
.
通道自动为你的客户端过程加载
DLL,
并像远程服务一样将服务端方法开放出来
.
为什么要使用这个通道请查看上面的
Local
通道小节
.
客户端通道组件
:
  • TRODLLChannel (Delphi)
服务端通道组件
:
  • TROLocalServer (Delphi)
 
8) UDP

Broadcast
通道
(Delphi)
除了
TCP, UDP
是另外一个
Internet TCP/IP
网络组织的基本传输协议
.

TCP
相比
,UDP
没有基于连接传输数据的概念
,
而是在网络中发送单独的数据包

可寻址数据包
.
UDP
也提供了没有错误修正和保证的传递方式
,
所以通过
UDP
发送的数据包可能会并没有达到目的地而丢失
,
或发生错误而简单的放弃
.
同时
UPD
通过自动截取而不提供大数据包的传递
.
总之
,UDP

TCP
相比更快更有效率
.
你可能想在需要高频率高效率传递小数据包事使用基于
UDP
的通道
,
而且不用去考虑网络错误调整和包恢复
(

TCP
提供的特性
).
这只能用于局域网的情形
,
网络组织可靠并且发生丢包的情况非常少
.
Broadcast
通道与
UDP
通道变化而来
,
允许你向本地网络中所有可用的服务端使用
UDP
广播发送请求
.
这在通知或搜索可用服务端时非常有用
.
这两种通道可以用于异步模式
;
对于广播的情形
,
你的服务端将调用
ROSendNoResponse
防止任何响应形式发送
(
以便于大量的接收方可以取消消息通知
),
直到你的客户端将准备好接收多个响应
.
客户端通道组件
:
  • TROIndyUdpChannel (Delphi)
  • TROBroadcastChannel (Delphi)
服务端通道组件
:
  • TROIndyUdpServer (Delphi)
  • TROBroadcastServer (Delphi)
9) Named Pipe
通道
这个通道使用
Windows
的命名管道特性在客户端和服务端通讯
.
推荐使用命名管道在单机的不同进程直接通讯
,
尤其是在不同用户环境下运行
.
这很有用
,
例如对服务的控制
.
请订阅平台
SDK

MSDN
文档查看更多命名管道信息
.
提示
:
牢记一个要点
: Windows
设置了同时连接到一个命名管道的客户端数量
-Home
版为
5

,Pro
版为
10

.
如果要运行一个网络服务
TCP/IP
是最好的选择
.
客户端通道组件
:
  • NamedPipeClientChannel (.NET) – new in ‘Vinci’
  • TRONamedPipeChannel (Delphi)
服务端通道组件
:
  • NamedPipeServerChannel (.NET) – new in ‘Vinci’
  • TRONamedPipeServer (Delphi)
 
10) WinMessage
通道
(Delphi)
这个通道使用
Windows
消息在客户端和服务端通讯
.
这是在单机内部进程间通讯的一个简单方式
,Windows
消息有一些限制

不能在
Windows
服务
(

Exe
文件对应
)
中与服务
(Service)
通讯
,
使用
Windows
消息
(MSMQ)
轮询来实现客户端和服务端通讯
.
请订阅平台
SDK

MSDN
文档查看这个概念的更多信息
.
客户端通道组件
:
  • TROWinMessageChannel (Delphi)
服务端通道组件
:
  • TROWinMessageServer (Delphi)
 
结论
本文比较了各种通道然后使用他们
,
如果你在使用时有什么问题请发送
Email support@remobjects.com
联系
.

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/159817.html原文链接:https://javaforall.net

(0)
上一篇 2022年7月15日 上午8:16
下一篇 2022年7月15日 上午8:36


相关推荐

  • @ResponseBody注解的作用

    @ResponseBody注解的作用 1、  @ResponseBody注解的作用是将controller的方法返回的对象通过适当的转换器转换为指定的格式之后,写入到response对象的body区(响应体中),通常用来返回JSON数据或者是XML。  数据,需要注意的呢,在使用此注解之后不会再走视图处理器,而是直接将数据写入到输入流中,它的效果等同于通过response对象输出指定格式的数据。    这里…

    2022年5月28日
    41
  • 通配符掩码计算「建议收藏」

    通配符掩码计算「建议收藏」一,通配符掩码1.通配符掩码的用途和结构①用途通配符掩码(wildcard-mask)路由器使用的通配符掩码与源或目标地址一起来分辨匹配的地址范围,它与子网掩码不同。它不像子网掩码告诉路由器IP地址的哪一位属于网络号一样,通配符掩码告诉路由器为了判断出匹配,它需要检查IP地址中的多少位。②结构通配符掩码中,0表示要检查的位,1表示不需要检查的位通配符掩码中,可以用255.255.255…

    2022年7月24日
    9
  • Delphi XE5如何读写INI文件

    Delphi XE5如何读写INI文件首先usesinifiles然后写文件procedureTHolidaySet.Button2Click(Sender:TObject);varIniFile:TIniFile;Count:Integer;begintryIniFile:=TIniFile.Create(TP…

    2022年7月18日
    19
  • form表单元素

    form表单元素nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp form 表单元素 1 form 表单元素 常见的表单元素有输入框 单选框 复选框 文本域 密码框等 2 其基本样式为 lt input nbsp type 类型 name 名字 gt 3 input 为输入框 其因 type 不同而类型不同 4 type 类型 1 checkbox 多选框 2 radio 单行单选框 3 text 文本

    2026年3月18日
    2
  • 安卓ExpandableListView的详细使用教程(附代码解析过程)

    安卓ExpandableListView的详细使用教程(附代码解析过程)ExpandableListView又称可扩展的ListView,它可以实现点击父项展开子项的效果,本文实现了一个比较精美的ExpandableListView。

    2022年6月30日
    19
  • 【从零开始】OpenClaw基础入门:从“养虾”概念到第一个智能体程序

    【从零开始】OpenClaw基础入门:从“养虾”概念到第一个智能体程序

    2026年3月17日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号