Я Я не знаю, как правильно это сделать, но приведенный ниже код предназначен для работы в Kestrel/Visual Studio.
Однако, когда я размещаю свое приложение на IIS 10, все становится странным.
Клиент подключится к серверу, но видео не будет отображаться.
С помощью DevTools я вижу, что запрос зависает в состоянии «Загрузка с сервера». Если я вручную отключу соединение с IP-камерой на серверной стороне, браузер быстро отобразит несколько кадров из потока, и запрос будет завершен.
В дополнение к этому коду я Я пытался прочитать поток IP-камеры в буфер, а затем записать его в тело ответа. Однако это работает только в Kestrel, а не в IIS. Мне интересно, нужно ли мне что-то настраивать в IIS? Я работаю над этим уже пару недель, и у меня нет идей.
Серверная часть
public async Task Video()
{
AppContext.SetSwitch("System.Net.Http.UseSocketsHttpHandler", false);
string baseAddress = "http://192.168.1.100";
string clientId = "Username";
string clientSecret = "Password";
var credCache = new CredentialCache
{
{ new Uri(baseAddress), "Digest", new NetworkCredential(clientId, clientSecret) }
};
HttpClient httpClient = new HttpClient(new HttpClientHandler { Credentials = credCache });
httpClient.BaseAddress = new Uri(baseAddress);
var response = await httpClient.GetStreamAsync("/cgi-bin/mjpg/video.cgi?channel=1&subtype=1");
HttpContext.Response.Headers.ContentType = "multipart/x-mixed-replace; boundary=--myboundary";
return response;
}
HTML
Подробнее здесь: https://stackoverflow.com/questions/783 ... -on-iis-10
Мобильная версия