У меня есть приложение для Windows, которое общается с сервером через веб-порты, я использую метеоритный сервер как сервер и websockets4net для связи на клиенте. при отправке сообщений на сервер (формат json). сервер ответит на websocket в другом порядке. Я могу отслеживать сообщения, отправленные на сервер. В C# мы можем создать образец потребителя, где я могу хранить messageid и callback в словаре и выполнять обратный вызов при получении ответа.Асинхронное выполнение событий с использованием веб-карт
//<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();
}
Почему вы хотите связать разные обратные вызовы с каждым запросом, отправляемым на сервер? – gaurawerma
Да, я называю разные серверные методы, может возвращать разные ответы, может обрабатываться независимо. –
Можете ли вы показать мне, что вы делаете в client.Execute («ConfirmOrder», callback)? – gaurawerma