TsgcWSPServer_sgcMétodos › Broadcast

Broadcast Método

Faz broadcast de um payload de texto ou stream para todos os clientes conectados, opcionalmente filtrado por canal.

Overloads

Overload 1

Sintaxe

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

Parâmetros

NameTypeDescrição
aMessagestringPayload de texto encapsulado no envelope sgc e entregue aos destinatários através de OnMessage.
aChannelstringFiltro de canal opcional. Quando fornecido, apenas clientes assinados nesse canal recebem o payload; deixe vazio para alcançar todas as conexões.
ExcludeStringLista de Guids de conexão separados por ponto e vírgula que não devem receber o broadcast.
IncludeStringLista de Guids de conexão separados por ponto e vírgula aos quais o broadcast é restrito, sobrepondo-se ao filtro de canal.

Observações

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.

Exemplo

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

Sobrecarga 2

Sintaxe

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

Parâmetros

NameTypeDescrição
aStreamTStreamPayload binário enviado tal como está no WebSocket; os destinatários o recebem através de OnBinary.
aChannelstringFiltro de canal opcional. Quando fornecido, apenas os clientes inscritos naquele canal recebem o frame.
ExcludeStringLista de Guids de conexão separados por ponto e vírgula que não devem receber o frame.
IncludeStringLista separada por ponto e vírgula de Guids de conexão aos quais o frame é restrito.
aSizeIntegerTamanho do chunk em bytes quando o payload é fragmentado; passe 0 para enviar o stream como um único frame.
aStreamingTwsStreamingEstratégia de streaming (stmNone, stmFragmented, stmCustom) utilizada para dividir o stream em frames.

Observações

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.

Exemplo

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

Voltar para Métodos