网络套接字
看看 HTML5 WebSockets,它们是服务器/浏览器数据交换的新标准:
WebSockets 是一种通过单个传输控制协议 (TCP) 套接字提供双向、全双工通信通道的技术,旨在在 Web 浏览器和 Web 服务器中实现。
当新数据可用时,服务器可以将新数据推送到客户端,从而消除客户端拉取请求的开销。
Wikipedia 页面列出了可用的服务器端实现,包括 PHP 版本(但不包括 Delphi)。
WebSockets 不绑定到 JavaScript,websockets.org 页面说:
此外,Web Socket 协议可用于支持多种客户端(例如 JavaScript、Adobe Flex、JavaFX、Microsoft Silverlight 等)。但是,HTML5 规范只定义了对 JavaScript 的支持,仅限于基于文本的协议。要为其他客户端类型提供服务并支持二进制协议,您需要寻找外部产品。
消息数据可以以JSON格式交换,JavaScript 支持这种格式,Delphi 也可以使用这种格式(如 SuperObject 或 lkJSON 等开源实现)。
阿贾克斯
Ajax based rich internet applications for Delphi can be built using Intraweb or ExtPascal. ExtPascal is an Object Pascal (Delphi, FreePascal/Lazarus) wrapper/binding for Ext JS, a complete GUI Ajax framework and offers transparent support for all main web browsers: IE 6+, Firefox 1.5+, Safari 3+, Opera 9+ and Chrome 2+ on any client side platform (PCs, SmartPhones, iPhone, PDAs, etc). Online demo applications: FishFacts, more.
Ajax Push (aka Reverse Ajax / Comet) offers "HTTP server push" of data (in XML or JSON format) which transfers data from the server to all connected web browser clients whenever data on the server changes. Clients can 'subscribe' to the information they are interested in.