TsgcWSPServer_sgc › Méthodes › Broadcast
Diffuse un payload texte ou flux à tous les clients connectés, avec filtrage optionnel par canal.
procedure Broadcast(aMessage: string; aChannel: string = ''; Exclude: String = ''; Include: String = '');
| Nom | Type | Description |
|---|---|---|
aMessage | string | Charge utile textuelle encapsulée dans l'enveloppe sgc et livrée aux destinataires via OnMessage. |
aChannel | string | Filtre de canal optionnel. Lorsqu'il est fourni, seuls les clients abonnés à ce canal reçoivent la charge utile ; laissez vide pour atteindre toutes les connexions. |
Exclude | String | Liste séparée par des points-virgules des Guids de connexion qui ne doivent pas recevoir la diffusion. |
Include | String | Liste séparée par des points-virgules des GUID de connexions auxquels la diffusion est restreinte, remplaçant le filtre de canal. |
Surcharge texte. Envoie une enveloppe method=message aux destinataires sélectionnés. Lorsque la QoS est de niveau 1 ou niveau 2, le serveur stocke le message dans la liste en attente et attend les accusés de réception par connexion, en renvoyant si nécessaire ; avec la QoS de niveau 0, le message est transmis une seule fois sans suivi.
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);
| Nom | Type | Description |
|---|---|---|
aStream | TStream
| Charge utile binaire envoyée telle quelle sur le WebSocket ; les destinataires la reçoivent via OnBinary. |
aChannel | string | Filtre de canal facultatif. Lorsqu'il est fourni, seuls les clients abonnés à ce canal reçoivent la trame. |
Exclude | String | Liste de Guid de connexions séparés par des points-virgules qui ne doivent pas recevoir la trame. |
Include | String | Liste séparée par des points-virgules des Guids de connexion auxquels la trame est restreinte. |
aSize | Integer | Taille des fragments en octets lorsque la charge utile est fragmentée ; passez 0 pour envoyer le flux en une seule trame. |
aStreaming
| TwsStreaming | Stratégie de streaming (stmNone, stmFragmented, stmCustom) utilisée pour découper le flux en trames.
|
Surcharge binaire. Distribue le flux directement aux destinataires sélectionnés sans l'encapsuler dans l'enveloppe JSON sgc, de sorte que les clients voient une trame binaire brute. Contrairement à la surcharge texte, ce chemin n'utilise pas la liste en attente QoS ; la livraison est au mieux possible sur le transport WebSocket sous-jacent.
oStream := TFileStream.Create('image.png', fmOpenRead);
try
oProtocol.Broadcast(oStream, 'news');
finally
oStream.Free;
end;