TsgcWebSocketProxyServer › Yöntemler › WriteData

WriteData Yöntem

Proxy üzerindeki tek bir WebSocket istemcisine, bağlantı GUID'iyle tanımlanan bir mesaj gönderir.

Aşırı Yüklemeler

Aşırı Yükleme 1

Sözdizimi

function WriteData(const aGuid, aMessage: string): Boolean;

Parametreler

NameTypeAçıklama
aGuidconst stringİstemci handshake'i tamamlandığında proxy tarafından atanan hedef bağlantının tanımlayıcısı.
aMessageconst stringO istemciye bir WebSocket metin çerçevesi olarak teslim edilecek metin yükü.

Dönüş Değeri

Verilen GUID'e sahip bir bağlantı bulunduğunda ve çerçeve yuvasına teslim edildiğinde True; eşleşen etkin bağlantı olmadığında False. (Boolean)

Remarks

Bu aşırı yükleme, GUID'si aGuid ile eşleşen WebSocket bağlantısını arar ve metin mesajını tünelin tarayıcıya bakan tarafındaki o tek istemciye gönderir. GUID, TsgcWSConnection.Guid tarafından sunulan değerdir; genellikle OnConnect içinde yakalanır ve uygulama tarafından saklanır. Eşleştirilmiş yukarı akış TCP bağlantısına bu çağrıyla yazılmaz; baytları arka uç TCP sunucusu üzerinden yönlendirmeden verileri proxy'den tarayıcı istemcisine göndermek için kullanın. Tek bir çağrıda her etkin WebSocket istemcisine ulaşmak için Broadcast kullanın.

Örnek


oServer.WriteData('guid', 'My First sgcWebSockets Message!.');

Overload 2

Sözdizimi

function WriteData(const aGuid: String; aStream: TStream; aSize: Integer = 0; const aStreaming: TwsStreaming = stmNone) : Boolean;

Parametreler

NameTypeAçıklama
aGuidconst Stringİstemci handshake'i tamamlandığında proxy tarafından atanan hedef bağlantının tanımlayıcısı.
aStreamTStreamİçeriği istemciye bir WebSocket ikili çerçevesi olarak gönderilen kaynak akışı. Çağıran, akışın sahibi olmaya devam eder.
aSizeIntegerİsteğe bağlı bayt cinsinden parça boyutu; sıfırdan büyük olduğunda akış bu boyutta birden çok parçaya bölünür. Tüm akışı 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.

Dönüş Değeri

Belirtilen GUID'e sahip bir bağlantı bulunduğunda ve akış soketine teslim edildiğinde True; eşleşen etkin bağlantı olmadığında False. (Boolean)

Remarks

Bu aşırı yükleme, proxy'nin tarayıcıya bakan tarafındaki tek bir WebSocket istemcisini, sağlanan stream'den okunan ikili bir yük ile hedefler. Stream, geçerli konumundan tüketilir ve sunucu sahipliği almaz, bu nedenle çağıran, WriteData dönene kadar onu canlı tutmalıdır. Bu GUID ile ilişkili yukarı akış TCP bağlantısına burada yazılmaz; baytlar yalnızca WebSocket peer'ına teslim edilir. Birden çok WebSocket çerçevesi arasında parçalanması gereken çok büyük yükler gönderirken aSize değerini aStreaming ile birlikte kullanın.

Örnek


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

Yöntemlere Dön