RTCMultiConnection 服务器

兼容 RTCMultiConnection JavaScript 库的 WebSocket 信令服务器。将其部署在 TsgcWebSocketHTTPServer 上,您的浏览器客户端即可相互发现并建立连接。

TsgcWSAPIServer_RTCMultiConnection

实现 RTCMultiConnection(Muaz Khan)JavaScript 客户端所使用的通信协议 — 房间管理、节点发现、SDP / ICE 中继 — 使 Delphi 服务器能够替代 Node.js 信令后端。

组件类

TsgcWSAPIServer_RTCMultiConnection

支持平台

Windows, macOS, Linux, iOS, Android

版本

Enterprise

放置于 HTTP 服务器,即可运行

将 TsgcWebSocketHTTPServer(推荐启用 TLS)与 TsgcWSAPIServer_RTCMultiConnection 并排放置 — 您现有的 RTCMultiConnection.js 客户端使用默认 URL 即可连接。

uses
  sgcWebSocket, sgcWebSocket_Server_APIs;

var
  Server: TsgcWebSocketHTTPServer;
  RTCMC: TsgcWSAPIServer_RTCMultiConnection;
begin
  Server := TsgcWebSocketHTTPServer.Create(nil);
  Server.Port := 443;
  Server.SSL  := True;
  Server.SSLOptions.CertFile := 'cert.pem';
  Server.SSLOptions.KeyFile  := 'key.pem';

  RTCMC := TsgcWSAPIServer_RTCMultiConnection.Create(nil);
  RTCMC.Server := Server;

  Server.Active := True;
end;

内部功能

流行 RTCMultiConnection.js 客户端的服务器端对应组件 — 让您用 Delphi 服务替代 Node.js 信令。

房间/频道路由

接受 open-roomjoin-roomcheck-presence 及其他 RTCMultiConnection 通信指令 — 同一房间内的参与者可相互交换 SDP 和 ICE 候选者。

SDP 中继

SDP 提议和应答原样转发 — 服务器不解码内容,因此随着 JavaScript 客户端的演进保持兼容性。

ICE 候选者中继

Trickle-ICE 候选者通过同一通道传输,每个节点的候选者会排队等待客户端触发 SetRemoteDescription 后再发送。

多实例

可在同一服务器上放置多个 TsgcWSAPIServer_RTCMultiConnection 组件(每个虚拟主机一个)— 每个实例管理独立的房间命名空间。

推荐启用 TLS

WebRTC 生产环境需要 TLS;请在 Server.SSLOptions 中配置有效证书,确保浏览器接受 wss:// 格式的 WebSocket 升级请求。

与 TURN 配合使用

TsgcTURNServer 结合,打造全 Delphi WebRTC 后端 — 信令在此处理,候选者中继在彼处理,无需任何第三方服务。

规范与参考资料

该组件实现的项目权威来源。

文档与示例

直达组件参考文档、获取即用示例项目并下载试用版。

在线帮助 — RTCMultiConnection 该组件完整的属性、方法和事件参考文档。
示例项目 — Demos\30.WebRTC_Protocol\04.RTCMultiConnection 即用示例项目,包含在 sgcWebSockets 包中 — 请从下方下载试用版。
技术文档(PDF) 功能介绍、快速入门、Delphi 与 C++ Builder 代码示例及原始参考资料 — 仅限此组件。
用户手册(PDF) 涵盖库中每个组件的综合手册。

准备好在 Delphi 中托管 RTCMultiConnection 了吗?

下载免费试用版,用 Delphi 服务替代您的 Node.js 信令后端。