TsgcWSPServer_sgc › Metodi › Broadcast
Trasmette un payload testuale o in streaming a tutti i client connessi, con filtraggio opzionale per canale.
procedure Broadcast(aMessage: string; aChannel: string = ''; Exclude: String = ''; Include: String = '');
| Nome | Tipo | Descrizione |
|---|---|---|
aMessage | string | Payload di testo racchiuso nell'envelope sgc e consegnato ai destinatari tramite OnMessage. |
aChannel | string | Filtro canale opzionale. Se fornito, solo i client sottoscritti a quel canale ricevono il payload; lasciare vuoto per raggiungere ogni connessione. |
Exclude | String | Elenco di Guid di connessione separati da punto e virgola che non devono ricevere il broadcast. |
Include | String | Elenco separato da punto e virgola dei GUID di connessione a cui il broadcast è limitato, sovrascrivendo il filtro del canale. |
Overload testo. Invia un envelope method=message ai destinatari selezionati. Quando QoS è Level 1 o Level 2, il server memorizza il messaggio nell'elenco in sospeso e attende le conferme per connessione, inviandolo nuovamente se necessario; con QoS Level 0 il messaggio viene trasmesso una sola volta senza tracciamento.
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);
| Nome | Tipo | Descrizione |
|---|---|---|
aStream | TStream | Payload binario inviato così com'è sul WebSocket; i destinatari lo ricevono tramite OnBinary. |
aChannel | string | Filtro di canale opzionale. Quando fornito, solo i client sottoscritti a tale canale ricevono il frame. |
Exclude | String | Elenco di Guid di connessione separati da punto e virgola che non devono ricevere il frame. |
Include | String | Elenco separato da punto e virgola dei GUID di connessione a cui il frame è limitato. |
aSize | Integer | Dimensione del chunk in byte quando il payload è frammentato; passare 0 per inviare lo stream come singolo frame. |
aStreaming | TwsStreaming | Strategia di streaming (stmNone, stmFragmented, stmCustom) utilizzata per suddividere il flusso in frame. |
Overload binario. Invia lo stream direttamente ai destinatari selezionati senza racchiuderlo nell'envelope JSON sgc, quindi i client ricevono un frame binario raw. A differenza dell'overload testuale, questo percorso non utilizza la lista di QoS in sospeso; la consegna è best-effort sul trasporto WebSocket sottostante.
oStream := TFileStream.Create('image.png', fmOpenRead);
try
oProtocol.Broadcast(oStream, 'news');
finally
oStream.Free;
end;