Websockets aracılığıyla sunucuya iletişim kuran bir windows uygulamasına sahibim, istemcide iletişim için server ve websockets4net olarak meteor sunucusunu kullanıyorum. Sunucuya bazı mesajlar gönderirken (json formatı). sunucusu, websocket'e farklı düzende yanıt verecektir. Sunucuya gönderilen mesajları takip edebilirim. C# içinde tüketici kodu üretebilir, burada messageid ve callback'i sözlük 'da saklayabilir ve yanıt alındığında geri arama yapabiliriz.Websockets kullanarak eşzamansız olay yürütme
//<int, Action>(<messageid,Callback delegate>)
ConcurrentDictionary<int, Action> serverResponseCollection = new ConcurrentDictionary<int, Action>();
public send(JObject message,Action Callback)
{
socket.Send(message);
serverResponseCollection.Add(message.id,Callback);
}
void socket_MessageReceived(object sender, MessageReceivedEventArgs e)
{
//server response contains message id
//get callback function and execute
var callbackObj = serverResponseCollection[e.id];
Callback();
}
Neden farklı geri çağrıları sunucuya gönderdiğiniz her istek ile ilişkilendirmek istersiniz? – gaurawerma
evet, farklı sunucu yöntemlerini çağırıyorum, farklı yanıt verebilir, bağımsız olarak ele alınabilir. –
client.Execute ("ConfirmOrder", geri arama) bölümünde ne yaptığınızı bana gösterebilir misiniz? – gaurawerma