TsgcWebSocketHTTPServer › Yöntemler › WriteData
Bağlantı GUID'siyle tanımlanan tek bir istemciye bir WebSocket mesajı gönderir.
function WriteData(const aGuid, aMessage: string): Boolean;
| Name | Type | Açıklama |
|---|---|---|
aGuid | const string | İstemci handshake'i tamamlandığında sunucu 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'i aGuid ile eşleşen WebSocket bağlantısını arar ve metin mesajını o tek istemciye gönderir. GUID, TsgcWSConnection.Guid tarafından gösterilen değerdir, genellikle OnConnect'te yakalanır ve uygulama tarafından saklanır. Yalnızca yükseltilmiş WebSocket oturumları uygundur; saf HTTP isteklerine ait GUID'ler reddedilir ve False döndürülür. QueueOptions.Text, qmNone dışında bir değere ayarlandığında, çerçeve sıraya alınır ve çağıranın iş parçacığı yerine bağlantı iş parçacığından gönderilir (IOHandlerOptions.IOHandlerType = iohIOCP olduğunda desteklenmez). Tek bir çağrıda her etkin istemciye ulaşmak için Broadcast'i 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 sunucu 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, sağlanan akıştan okunan ikili bir yükle tek bir WebSocket istemcisini hedefler. Akış geçerli konumundan tüketilir ve sunucu sahipliği almaz, dolayısıyla çağıran, WriteData dönene kadar (veya kuyruğa alındığında gönderme tamamlanana kadar) akışı canlı tutmalıdır. QueueOptions.Binary, qmNone dışında bir değere ayarlandığında çerçeve kuyruğa alınır ve çağıranın iş parçacığı yerine bağlantı iş parçacığından gönderilir (IOHandlerOptions.IOHandlerType = iohIOCP olduğunda desteklenmez). Birden çok WebSocket çerçevesine bölünmesi gereken çok büyük yükler gönderirken aSize öğesini aStreaming ile birlikte kullanın.
oStream := TMemoryStream.Create;
try
oStream.LoadFromFile('payload.bin');
oServer.WriteData('guid', oStream);
finally
oStream.Free;
end;