TsgcWSPServer_sgc方法 › Broadcast

Broadcast 方法

向所有已连接的客户端广播文本或流负载,可选择按频道过滤。

重载

重载 1

语法

procedure Broadcast(aMessage: string; aChannel: string = ''; Exclude: String = ''; Include: String = '');

参数

名称类型描述
aMessagestring包裹在 sgc 信封中的文本载荷,通过 OnMessage 投递给收件人。
aChannelstring可选的频道过滤器。若提供,则只有订阅该频道的客户端收到载荷;留空表示发送给所有连接。
ExcludeString不应接收广播的连接 Guid 的分号分隔列表。
IncludeString以分号分隔的连接 GUID 列表,广播仅限于这些连接,覆盖频道过滤器。

备注

文本重载。向选定的接收方发送一个 method=message 的信封。当 QoS 为 Level 1 或 Level 2 时,服务器将消息存储在待处理列表中,等待每个连接的确认,并在必要时重发;Level 0 时消息只发送一次,不进行追踪。

示例

oProtocol.Broadcast('hello everyone');
oProtocol.Broadcast('channel update', 'news');

重载 2

语法

procedure Broadcast(aStream: TStream; aChannel: string = ''; Exclude: String = ''; Include: String = ''; aSize: Integer = 0; aStreaming: TwsStreaming = stmNone);

参数

名称类型描述
aStreamTStream二进制载荷原样在 WebSocket 上发送;接收方通过 OnBinary 接收。
aChannelstring可选的频道过滤器。若提供,则只有订阅了该频道的客户端才会收到帧。
ExcludeString以分号分隔的连接 GUID 列表,这些连接不应接收该帧。
IncludeString帧受限的连接 Guid 的分号分隔列表。
aSizeInteger载荷分片时的块大小(字节);传入 0 可将流作为单帧发送。
aStreamingTwsStreaming流式传输策略(stmNonestmFragmentedstmCustom),用于将流切分为帧。

备注

二进制重载。将流直接分发给选定接收方,而不将其封装在 sgc JSON 信封中,因此客户端看到的是原始二进制帧。与文本重载不同,此路径不使用 QoS 待处理列表;在底层 WebSocket 传输上采用尽力而为的投递。

示例

oStream := TFileStream.Create('image.png', fmOpenRead);
try
  oProtocol.Broadcast(oStream, 'news');
finally
  oStream.Free;
end;

返回方法