2016-05-11 2 views
1

Есть ли способ создать собственный пул соединений.Пул соединений для RestSharp

Я разрабатываю приложение, которое подключается к серверу. Каждый раз, когда ему нужно запрашивать время на сервер, он создает соединение и освобождает его.

Я хотел бы предоставить прозрачный способ получить соединение из пула из них.

Я использую RestSharp строить свои запросы:

var client = new RestClient("http://example.com"); 

var request = new RestRequest("resource/{id}", Method.POST); 
request.AddParameter("name", "value"); 
request.AddUrlSegment("id", "123"); 

// easily add HTTP Headers 
request.AddHeader("header", "value"); 

// execute the request 
IRestResponse response = client.Execute(request); 
var content = response.Content; 

Так что, возможно, вопрос будет aroung как создать пул для RestSharp? Или, как настроить RestSharp для получения соединений из пула?

ответ

2

Как вы можете видеть в RestSharp source code, RestSharp основан на хорошо известных System.Net классы, такие как HttpWebRequest и HttpWebResponse. Эти классы уже используют собственный конвейер.

Этот трубопровод может быть настроен при необходимости: Understanding System.Net Connection Management and ServicepointManager

Если приложение продолжает делать запросы, все ожидающие запросы будут быть поставлены в очередь на Servicepoint и обрабатываются последовательно. Если конвейер включен, запрос отправляется по соединению и помещается в очередь . Если конвейерная линия отключена, запрос останется в очереди служебной точки и будет отправлять по соединение, как только будет доступно свободное соединение.

Связанные вопрос: Is HTTP connection pooling possible?

Смежные вопросы