TsgcWebSocketServer_HTTPAPIMethods › Broadcast

Broadcast Yöntem

Aynı mesajı tüm bağlı istemcilere gönderir, isteğe bağlı olarak kanala, protokole veya bağlantı GUID listesine göre filtrelenir.

Aşırı Yüklemeler

Aşırı Yükleme 1

Sözdizimi

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

Parametreler

NameTypeAçıklama
aMessageconst stringEşleşen her istemciye WebSocket metin çerçevesi olarak teslim edilen metin yükü.
aChannelconst stringBoş olmadığında, mesaj yalnızca verilen kanala abone olan istemcilere gönderilir.
aProtocolconst stringBoş olmadığında, mesaj yalnızca verilen WebSocket alt protokolünü kullanan istemcilere gönderilir.
Excludeconst StringBu yayında atlanması gereken bağlantı GUID'lerinin virgülle ayrılmış listesi.
Includeconst StringYayı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.

Remarks

Bu aşırı yükleme, sağlanan filtrelerle eşleşen her etkin WebSocket bağlantısına bir metin çerçevesi gönderir. Filtreler AND semantiğiyle 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. Asynchronous etkinleştirildiğinde çağrı, her HTTP.sys yazma işlemi tamamlanmadan önce döner ve OnAsynchronous olayı tamamlanmayı raporlar; devre dışı bırakıldığında çağrı çağıranın iş parçacığında çalışır ve çerçeveler her soket için kuyruğa alındıktan sonra döner. Bağlantı başına yazma hataları, yayını iptal etmeden OnException aracılığıyla raporlanır.

Örnek


oServer.Broadcast('Hello From Server');

Overload 2

Sözdizimi

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

Parametreler

NameTypeAçıklama
aStreamTStreamİç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.
aChannelconst stringBoş olmadığında, mesaj yalnızca verilen kanala abone olan istemcilere gönderilir.
aProtocolconst stringBoş olmadığında, mesaj yalnızca verilen WebSocket alt protokolünü kullanan istemcilere gönderilir.
Excludeconst StringBu yayında atlanması gereken bağlantı GUID'lerinin virgülle ayrılmış listesi.
Includeconst StringYayı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.
aStreamingconst TwsStreamingParçalı iletim için akış modu (stmNone, stmStart, stmContinue, stmFinish). Tam, bağımsız bir mesaj gönderen stmNone varsayılandır.

Remarks

Bu aşırı yükleme, stream içeriğini kanal, protokol, Include ve Exclude filtrelerini geçen her bağlantıya ikili çerçeve olarak broadcast eder. Stream, geçerli konumundan okunur; sunucu sahiplik almaz, bu nedenle çağıran, Broadcast dönene kadar (veya Asynchronous etkinleştirildiğinde, OnAsynchronous olayı tamamlandığını bildirene kadar) stream'i canlı tutmalıdır. Çok büyük yükleri tek bir aşırı büyük çerçeve yerine birden çok WebSocket parçası olarak stream olarak göndermek için aSize öğesini aStreaming ile birlikte kullanın; bu, özellikle çekirdeğin giden verileri tamponladığı HTTP.sys'te yararlıdır.

Örnek


oStream := TMemoryStream.Create;
try
  oStream.LoadFromFile('payload.bin');
  oServer.Broadcast(oStream);
finally
  oStream.Free;
end;

Yöntemlere Dön