TsgcWebSocketServer › Yöntemler › Broadcast
Aynı mesajı tüm bağlı istemcilere gönderir, isteğe bağlı olarak kanala, protokole veya bağlantı GUID listesine göre filtrelenir.
procedure Broadcast(const aMessage: string; const aChannel: string = ''; const aProtocol: string = ''; const Exclude: String = ''; const Include: String = '');
| Name | Type | Açıklama |
|---|---|---|
aMessage | const string | Eşleşen her istemciye WebSocket metin çerçevesi olarak teslim edilen metin yükü. |
aChannel | const string | Boş olmadığında, mesaj yalnızca verilen kanala abone olan istemcilere gönderilir. |
aProtocol | const string | Boş olmadığında, mesaj yalnızca verilen WebSocket alt protokolünü kullanan istemcilere gönderilir. |
Exclude | const String | Bu yayında atlanması gereken bağlantı GUID'lerinin virgülle ayrılmış listesi. |
Include | const String | Yayını (broadcast) o alt kümeyle sınırlayan, virgülle ayrılmış bağlantı GUID'leri listesi; boş olduğunda göz ardı edilir. |
Bu aşırı yükleme, verilen filtrelerle eşleşen her etkin bağlantıya bir metin çerçevesi gönderir. Filtreler VE (AND) anlamıyla birleştirilir: bir bağlantı, mesajı yalnızca boş olmayan her filtreyi karşıladığında alır ve GUID'si Exclude içinde göründüğünde asla ulaşılmaz. LoadBalancer etkinleştirildiğinde çağrı küme genelinde iletilir, böylece uzak düğümler de mesajı yerel istemcilerine teslim eder. Çağrı, çağıranın iş parçacığında çalışır ve çerçeveler her sokete teslim edildiğinde geri döner; bağlantı başına yazma hataları, yayını iptal etmeden OnException aracılığıyla bildirilir.
oServer.Broadcast('Hello From Server');
procedure Broadcast(aStream: TStream; const aChannel: string = ''; const aProtocol: string = ''; const Exclude: String = ''; const Include: String = ''; const aSize: Integer = 0; const aStreaming: TwsStreaming = stmNone);
| Name | Type | Açıklama |
|---|---|---|
aStream | TStream | İçeriği eşleşen her istemciye WebSocket ikili çerçevesi (binary frame) olarak iletilen kaynak stream'i. Çağıran, stream'in sahibi olmaya devam eder. |
aChannel | const string | Boş olmadığında, mesaj yalnızca verilen kanala abone olan istemcilere gönderilir. |
aProtocol | const string | Boş olmadığında, mesaj yalnızca verilen WebSocket alt protokolünü kullanan istemcilere gönderilir. |
Exclude | const String | Bu yayında atlanması gereken bağlantı GUID'lerinin virgülle ayrılmış listesi. |
Include | const String | Yayını (broadcast) o alt kümeyle sınırlayan, virgülle ayrılmış bağlantı GUID'leri listesi; boş olduğunda göz ardı edilir. |
aSize |
const Integer | İsteğe bağlı bayt cinsinden parça boyutu; sıfırdan büyük olduğunda her istemci stream'i bu boyutta parçalara bölünmüş olarak alır. Tüm stream'i tek bir çerçeve olarak göndermek için 0 (varsayılan) kullanın. |
aStreaming | const TwsStreaming | Parçalı iletim için akış modu (stmNone, stmStart, stmContinue, stmFinish). Tam, bağımsız bir mesaj gönderen stmNone varsayılandır. |
Bu aşırı yükleme, akış içeriklerini, kanal, protokol, Include ve Exclude filtrelerini geçen her bağlantıya ikili bir çerçeve olarak yayınlar. Akış geçerli konumundan okunur; sunucu sahipliği almaz, bu nedenle çağıran, Broadcast dönene kadar akışı canlı tutmalıdır. LoadBalancer etkinleştirildiğinde ikili yük, diğer düğümlere iletilir, böylece yerel istemcilerine yeniden teslim edebilirler. Çok büyük yükleri tek bir aşırı boyutlu çerçeve yerine birden fazla WebSocket parçası olarak akış halinde göndermek için aSize değerini aStreaming ile birlikte kullanın.
oStream := TMemoryStream.Create;
try
oStream.LoadFromFile('payload.bin');
oServer.Broadcast(oStream);
finally
oStream.Free;
end;