Пример #1
0
        /// <summary>
        /// Слушает все ответы от сервера и запускает callback из словаря callback'ов, созданный в методе On
        /// </summary>
        void ListenResponses()
        {
            _client.OnMessage += (sender, e) =>
            {
                try
                {
                    var methodName = MessageSerializer.DeserializeMethodName(e.RawData);

                    var callback = _listenersPool[methodName];

                    callback.Action(MessageSerializer.DeserializeResponse(callback.Type, e.RawData));
                }
                catch (KeyNotFoundException)
                {
                    Log.Info($"Непрослушиваемый метод: {MessageSerializer.DeserializeMethodName(e.RawData)}");
                }
                catch (MessagePackSerializationException)
                {
                    Log.Warn($"Неопознанный метод: {Encoding.UTF8.GetString(e.RawData)}");
                }
            };
        }
Пример #2
0
 /// <summary>
 /// Делает запрос на сервер без параметров
 /// </summary>
 /// <param name="methodName">Название метода</param>
 public void Request(string methodName)
 {
     _client.Send(MessageSerializer.SerializeRequest(methodName));
 }
Пример #3
0
 /// <summary>
 /// Делает запрос на сервер
 /// </summary>
 /// <typeparam name="T">Тип объекта запроса</typeparam>
 /// <param name="methodName">Название метода</param>
 /// <param name="data">Объект запроса</param>
 public void Request <T>(string methodName, T data)
 {
     _client.Send(MessageSerializer.SerializeRequest <T>(methodName, data));
 }