TsgcWSPServer_sgc › Métodos › Broadcast
Faz broadcast de um payload de texto ou stream para todos os clientes conectados, opcionalmente filtrado por canal.
procedure Broadcast(aMessage: string; aChannel: string = ''; Exclude: String = ''; Include: String = '');
| Name | Type | Descrição |
|---|---|---|
aMessage | string | Payload de texto encapsulado no envelope sgc e entregue aos destinatários através de OnMessage. |
aChannel | string | Filtro de canal opcional. Quando fornecido, apenas clientes assinados nesse canal recebem o payload; deixe vazio para alcançar todas as conexões. |
Exclude | String | Lista de Guids de conexão separados por ponto e vírgula que não devem receber o broadcast. |
Include | String | Lista de Guids de conexão separados por ponto e vírgula aos quais o broadcast é restrito, sobrepondo-se ao filtro de canal. |
Overload de texto. Envia um envelope method=message para os destinatários selecionados. Quando QoS é Nível 1 ou Nível 2, o servidor armazena a mensagem na lista de pendentes e aguarda confirmações por conexão, reenviando se necessário; com QoS Nível 0, a mensagem é transmitida uma vez sem rastreamento.
oProtocol.Broadcast('hello everyone');
oProtocol.Broadcast('channel update', 'news');
procedure Broadcast(aStream: TStream; aChannel: string = ''; Exclude: String = ''; Include: String = ''; aSize: Integer = 0; aStreaming: TwsStreaming = stmNone);
| Name | Type | Descrição |
|---|---|---|
aStream | TStream | Payload binário enviado tal como está no WebSocket; os destinatários o recebem através de OnBinary. |
aChannel | string | Filtro de canal opcional. Quando fornecido, apenas os clientes inscritos naquele canal recebem o frame. |
Exclude | String | Lista de Guids de conexão separados por ponto e vírgula que não devem receber o frame. |
Include | String | Lista separada por ponto e vírgula de Guids de conexão aos quais o frame é restrito. |
aSize | Integer | Tamanho do chunk em bytes quando o payload é fragmentado; passe 0 para enviar o stream como um único frame. |
aStreaming | TwsStreaming | Estratégia de streaming (stmNone, stmFragmented, stmCustom) utilizada para dividir o stream em frames. |
Sobrecarga binária. Despacha o stream diretamente aos destinatários selecionados sem encapsulá-lo no envelope JSON do sgc, de modo que os clientes vejam um frame binário bruto. Diferentemente da sobrecarga de texto, este caminho não usa a lista de pendências de QoS; a entrega é de melhor esforço no transporte WebSocket subjacente.
oStream := TFileStream.Create('image.png', fmOpenRead);
try
oProtocol.Broadcast(oStream, 'news');
finally
oStream.Free;
end;