По умолчанию Ohttp использует протокол h2, если домен поддерживает его. Цель состоит в том, чтобы как-то определить, что если домен находится на h2 и okhttp по умолчанию на h2, как разработчик может получить подтверждение того, что все вызовы мультиплексируются и идут по одному TCP-соединению? Я попытался использовать CustomEventListener
как предложено Джесси Уилсоном. Тем не менее, я не могу получить 100% подтверждение. Пытался получить информацию о соединении
'''@Override
public void connectionAcquired(Call call, Connection connection) {
logWithTime("connectionAcquired: " + connection);
}
'''
Объект соединения дает адрес Route
, порт, прокси, socketAddress, объединенный с cipherSuit и протоколом. Хотя протокол h2, как показывает объект соединения, я хочу знать, что соединения на самом деле мультиплексированы и проходят через одно соединение. Там нет информации об идентификаторах подключения или что-либо, что подтверждает то же самое. Просьба предложить. Пример журнала: [7 мс] connectionAcquired: Connection { http://api.hotstar.com:443, прокси = DIRECT hostAddress = http://api.hotstar.com/106.51.146.149:443… cipherSuite = TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 = h2 }
Попробуйте распечатать идентификационный хеш-код соединения. Если соединения разные, они будут иметь разные значения.
public void connectionAcquired(Call call, Connection connection) {
logWithTime("connectionAcquired: " + System.identityHashCode(connection));
}