sgcWebSockets, SignalR ve SignalRCore protokollerini destekler; şimdi CodeProject web sayfasından bir c# örneği kullanarak bir SignalR Sunucusuna nasıl bağlanılacağına dair bir örnek göreceğiz, makaleye şu bağlantıyı kullanarak erişebilirsiniz:
Bu makale, protokol olarak SignalR kullanarak basit bir Sunucu ve İstemcinin nasıl oluşturulacağını gösterir, tam csharp kaynağı github'da barındırılır
https://github.com/nthdeveloper/SignalRSamples
Aşağıdaki satırlarda, sgcWebSockets kütüphanesini kullanarak bu SignalR sunucusuna nasıl bağlanılacağını göstereceğim.
Bağlantıyı başlatma
Bir SignalR sunucusuna bağlanmak için, websocket istemcisi olarak TsgcWebSocketClient ve SignalR API olarak TsgcWSAPI_SignalR kullanacağız. Önce websocket istemcisini ve SignalR API'sini oluşturun ve SignalR API'sini WebSocket istemcisine iliştirin.
WSClient := TsgcWebSocketClient.Create(nil); SignalRAPI := TsgcWSAPI_SignalR.Create(nil); SignalRAPI.Client := WSClient;
Ardından sunucu veri bağlantısını ayarlamanız gerekir. Bu durumda, sunucu şu url'de dinliyor: http://localhost:8080. TsgcWebSocketClient, websocket sunucusunun URL'sini ayarlayabileceğimiz URL adlı bir özelliğe sahiptir; websocket protokolünü kullanacağımız için url'miz şu olacaktır: ws://localhost:8080
WSClient.URL := 'ws://localhost:8080';
Son olarak, SignalR bir Hub adı gerektirir; bu demoda hub adı simplehub'tır.
SignalRAPI.SignalR.Hubs.Clear;
SignalRAPI.SignalR.Hubs.Add('simplehub');
Ardından, yeni bir bağlantı başlatmak için WSClient.Active := True çağırabiliriz. Sunucu aktifse, başarılı bir bağlantıyı bildiren sunucudan bir mesaj alacağız.
Mesaj Gönder
Bağlandıktan sonra sunucuya bir mesaj gönderebiliriz; TsgcWSAPI_SignalR bileşeninden WriteData metodunu kullanacağız. SignalR, tescilli bir protokol kullanır; temelde bazı argümanlara sahip bir JSON mesajıdır. Bu örnekte metot Send olarak adlandırılır ve argüman metin mesajıdır. Mesajlar OnSignalRMessage olayında alınır.
SignalRAPI.WriteData(Format('{"H":"simplehub","M":"Send","A":["%s"],"I":1}', [txtMessage.Text]));
procedure OnSignalRSignalRMessage(Sender: TObject; MessageId, aData: string);
begin
DoLog('[' + MessageId + '] ' + aData);
end;

Katılma / Ayrılma mesajları
Sunucu örneği, bir gruptan kullanıcı katma ve çıkarma için 2 metoda sahiptir. Mesaj biçimi Send mesajına çok benzer, birkaç örnek görelim:
// join myGroup
SignalRAPI.WriteData(Format('{"H":"simplehub","M":"JoinGroup","A":["%s"],"I":2}', ['myGroup']));
// leave myGroup
SignalRAPI.WriteData(Format('{"H":"simplehub","M":"LeaveGroup","A":["%s"],"I":3}', ['myGroup']));
İndirme
Derlenmiş C# ve Delphi projesini şu bağlantıyı kullanarak indirebilirsiniz:
