C# Windows Form 응용 프로그램에서 CEF #을 사용하고 있습니다. 기본적으로 WebRTC 연결을 생성하는 웹 사이트를로드하여 피어간에 데이터 채널을 통해 파일을 보냅니다. C# 측은 파일에서 10KiB 청크를 읽은 다음 JavaScript로 전달하여 데이터 채널과 함께 전송합니다 (도착한 경우 다음 청크를 요청합니다 ...).C# 응용 프로그램 CEF # 파일 보내기
내 문제는 약 1MiB를 보낸 후에 보내는 프로세스가 중지되는 파일을 보내려고 할 때 발생합니다. 다양한 크기의 파일을 보내려고했는데 C#이나 JS 쪽에서 오류가 없었습니다.
CEF #에서 JavaScript로 데이터를 전달할 때 제한이 있습니다 (~ 1MiB 전체).
1. 읽기 파일 (SendNextChunk, C 번호) :
if (chunk_data = fs.Read(buffer, 0, current_chunk_size) > 0)
{
string buffer_base64 = Convert.ToBase64String(buffer);
browser.ExecuteScriptAsync("rtc.send('file', '" + buffer_base64 + "')");
}
2. Datachannel는 다른 피어 (자바 스크립트)를 수신 호출 (C#을) 청크를 전송
:
if (message == "file_ask") SendNextChunk(message);
else MergeChunk(message, "C:\\test");
3. 도착한 청크를 병합하고 코드를 제거하여 다음 청크 (MergeChunk, C#)를 묻습니다.
browser.ExecuteScriptAsync("rtc.send('file', 'file_ask')");
위의 "rtc.send"함수는 JSON 형식의 두 매개 변수를 다른 피어에 보냅니다.
CEF #에서 JavaScript로 전달되는 매개 변수의 알려진 크기 제한이 있습니까?
UPDATE :
은 아마 JS 또는 CEF # 캐시 도움이 될 삭제.
어떤 제안이라도 도움이 될 것입니다.
어떤 스레드에서 코드를 호출하고 있습니까? 엄격한 루프에서 실행하면 실제로 UI를 통해 요청을 올바르게 처리 할 시간이 주어지지 않을 수 있습니다. 보다 완벽한 예제를 제공 할 수 있습니까? – amaitland
청크를 보내기 전에 1 초 기다렸다가 시도했지만 결과는 같았습니다. –
자세한 샘플이 없으면 어떤 일이 벌어지고 있는지 말할 수 없습니다. – amaitland