RTCMultiConnection 服务器
兼容 RTCMultiConnection JavaScript 库的 WebSocket 信令服务器。将其部署在 TsgcWebSocketHTTPServer 上,您的浏览器客户端即可相互发现并建立连接。
兼容 RTCMultiConnection JavaScript 库的 WebSocket 信令服务器。将其部署在 TsgcWebSocketHTTPServer 上,您的浏览器客户端即可相互发现并建立连接。
实现 RTCMultiConnection(Muaz Khan)JavaScript 客户端所使用的通信协议 — 房间管理、节点发现、SDP / ICE 中继 — 使 Delphi 服务器能够替代 Node.js 信令后端。
TsgcWSAPIServer_RTCMultiConnection
Windows, macOS, Linux, iOS, Android
Enterprise
将 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-room、join-room、check-presence 及其他 RTCMultiConnection 通信指令 — 同一房间内的参与者可相互交换 SDP 和 ICE 候选者。
SDP 提议和应答原样转发 — 服务器不解码内容,因此随着 JavaScript 客户端的演进保持兼容性。
Trickle-ICE 候选者通过同一通道传输,每个节点的候选者会排队等待客户端触发 SetRemoteDescription 后再发送。
可在同一服务器上放置多个 TsgcWSAPIServer_RTCMultiConnection 组件(每个虚拟主机一个)— 每个实例管理独立的房间命名空间。
WebRTC 生产环境需要 TLS;请在 Server.SSLOptions 中配置有效证书,确保浏览器接受 wss:// 格式的 WebSocket 升级请求。
与 TsgcTURNServer 结合,打造全 Delphi WebRTC 后端 — 信令在此处理,候选者中继在彼处理,无需任何第三方服务。
该组件实现的项目权威来源。