Для фактической отправки я предпочитаю использовать wrtc через Simple-Peer, и он находится на бэкэнде (может быть, это странно, я знаю), поэтому я предоставил Simple-Peer @roamhq/wrtc, чтобы он работал в среде узла.
Проблема, с которой я столкнулся, заключается в том, что я могу отправлять данные слишком быстро или слишком большими фрагментами, и тогда они зависают. приводит к сбою программы.
Контекст: это два экземпляра электронного приложения, которые подключаются друг к другу через Simple-Peer, и один отправляет файл другому по моему выбору. Отправка чего-то вроде «Привет» работает, вероятно, потому, что это всего лишь небольшой объем данных.
Кроме того, отправляющий экземпляр работает нормально, он нормально читает файл и отправляет его. Умирает принимающая сторона.
Вот соответствующие фрагменты:
Отправка:
Код: Выделить всё
eventBus.on("peer-file-request", (file) => {
if (!this.connection) return;
const stream = createReadStream(file.path);
stream.on("data", (data) => {
console.log("[STREAM] Sending: ", data);
this.peer.send(data);
});
});
Прием:
Код: Выделить всё
this.peer.on("data", (data) => {
console.log("[PEER] Received data: ", data);
});
Происходит следующее: как только я начинаю отправлять что-то, например небольшой файл .log размером 14 КБ, принимающий экземпляр просто зависает, выдает мне ошибку, если я немного подожду, что соединение Ice не удалось, и тогда трудно даже закрыть приложение.
Я не знаю что именно я здесь нарушаю, это само соединение, почему я отправляю слишком быстро или слишком большие фрагменты, или я отправляю неправильный тип данных, или это что-то совершенно другое?
Любая помощь/материалы для чтения по этому поводу приветствуются
Подробнее здесь: https://stackoverflow.com/questions/798 ... ing-binary
Мобильная версия