TsgcWebSocketProxyServer › Yöntemler › WriteData
Proxy üzerindeki tek bir WebSocket istemcisine, bağlantı GUID'iyle tanımlanan bir mesaj gönderir.
function WriteData(const aGuid, aMessage: string): Boolean;
| Name | Type | Açıklama |
|---|---|---|
aGuid | const string | İstemci handshake'i tamamlandığında proxy tarafından atanan hedef bağlantının tanımlayıcısı. |
aMessage | const string | O istemciye bir WebSocket metin çerçevesi olarak teslim edilecek metin yükü. |
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)
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.
oServer.WriteData('guid', 'My First sgcWebSockets Message!.');
function WriteData(const aGuid: String; aStream: TStream; aSize: Integer = 0; const aStreaming: TwsStreaming = stmNone) : Boolean;
| Name | Type | Açıklama |
|---|---|---|
aGuid | const String | İstemci handshake'i tamamlandığında proxy tarafından atanan hedef bağlantının tanımlayıcısı. |
aStream | TStream | İçeriği istemciye bir WebSocket ikili çerçevesi olarak gönderilen kaynak akışı. Çağıran, akışın sahibi olmaya devam eder. |
aSize | Integer | İ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. |
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. |
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)
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.
oStream := TMemoryStream.Create;
try
oStream.LoadFromFile('payload.bin');
oServer.WriteData('guid', oStream);
finally
oStream.Free;
end;