Как проверить Http / 2 через ohttp? - PullRequest
0 голосов
/ 25 ноября 2018

По умолчанию протокол Okhttp, если домен поддерживает его.Цель состоит в том, чтобы как-то определить, что если домен находится на h2 и okhttp по умолчанию на h2, как разработчик может получить подтверждение того, что все вызовы мультиплексируются и идут по одному TCP-соединению?Я попытался использовать CustomEventListener, как предложено Джесси Уилсон Тем не менее, я не могу получить 100% подтверждение.Попытка получить информацию о соединении

```@Override
public void connectionAcquired(Call call, Connection connection) {
    logWithTime("connectionAcquired: " + connection);
}
```

Объект соединения дает Route адрес, порт, прокси, socketAddress, объединенные с помощью cipherSuit и протокола.Хотя протокол h2, как показывает объект соединения, я хочу знать, что соединения на самом деле мультиплексированы и проходят через одно соединение.Там нет информации об идентификаторах подключения или что-либо, что подтверждает то же самое.Просьба предложить.Пример журнала: [7 мс] connectionAcquired: соединение {http://api.hotstar.com:443, прокси = ПРЯМОЙ hostAddress = http://api.hotstar.com/106.51.146.149:443… cipherSuite = TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 протокол = h2}

1 Ответ

0 голосов
/ 25 ноября 2018

Попробуйте распечатать идентификационный хеш-код соединения.Если соединения разные, они будут иметь разные значения.

public void connectionAcquired(Call call, Connection connection) {
  logWithTime("connectionAcquired: " + System.identityHashCode(connection));
}
...