`

SimpleWebRTC 文件传输

阅读更多
1、定义接收端事件的处理
对每个PeerConnection定义[fileTransfer]事件的处理,取得元数据和filetransfer.Receiver参数。
1.1、对Receiver定义[progress]事件处理:传输过程中
   receiver.on('progress', function (bytesReceived) {});
1.2、对Receiver定义[receivedFile]事件处理:传输完了
   receiver.on('receivedFile', function (file, metadata) {});

2、定义发送端事件的处理
2.1、对发送端实例定义[progress]事件的处理:传输过程中
   sender.on('progress', function(offset, fileSize, result) {});
2.2、对发送端实例定义[sentFile]事件的处理:传输完了
   sender.on('sentFile', function() {});

3、传送文件
调用PeerConnection.sendFile(file)传输文件并返回filetransfer.Sender()实例。把【2、定义发送端事件的处理】赋给这个实例。

---------------------------------------------------------
Angular2代码例子:
1、发送端代码:
var files = $("#fileInput").prop('files');
if (!files) {
  console.log('No file chosen');
} else {
  this.webRtc.getPeers().forEach(function(peer) {
      var sender = peer.sendFile(files[0]);
      sender.on('progress', function(offset, fileSize, result) {
        // TODO
        console.log("sender: progress......");
      });
      sender.on('sentFile', function() {
        // TODO
        console.log("sender: sentFile......");
      });
  });
}

2、接收端代码
peer.on('fileTransfer', function (metadata, receiver) {
  receiver.on('progress', function (bytesReceived) {
    console.log('receive progress', bytesReceived, 'out of', metadata.size);
  });
  // get notified when file is done
  receiver.on('receivedFile', function (file, metadata) {
    console.log('received file', metadata.name, metadata.size);
    // close the channel

    receiver.channel.close();
  });
});

--End--
分享到:
评论

相关推荐

    webrtc网页视频开发帮助工具 simplewebrtc.js

    SimpleWebRTC.js 可以创建和管理这些数据通道,适用于低延迟的应用,如实时文本聊天或文件传输。 7. **事件处理**:SimpleWebRTC.js 提供了丰富的事件,如连接状态变化、媒体流的添加和移除等,这使得开发者可以...

    xirsys-simple-webrtc:Xirsys示例与SimpleWebRTC集成

    8. **数据通道**:RTCDataChannel用于传输非媒体数据,如文本、文件等。 9. **安全性**:WebRTC的安全性考虑,如DTLS(Datagram Transport Layer Security)协议用于加密数据传输。 10. **浏览器兼容性**:了解...

    exabox:对等VoIP通信应用程序,重点是文件和屏幕共享

    在文件共享方面,Exabox可能采用了断点续传、多线程下载和上传优化等策略,以提高文件传输效率和稳定性。同时,为了保证数据安全,文件传输可能使用了SSL/TLS加密,甚至可能采用了分布式哈希表(DHT)技术,使得文件...

    webRtc的示例代码

    在"webRtc的示例代码"中,我们关注的是一个名为"SimpleWebRTC-master"的压缩包文件。这通常是一个开源项目,用于简化WebRTC的开发过程,为开发者提供了一个基础框架,以便快速构建支持端对端音视频通话的应用。下面...

    基于Chrome、Java、WebSocket、WebRTC实现浏览器视频通话

    此外,由于WebRTC的复杂性,开发者可能需要借助如Jitsi、SimpleWebRTC等开源框架简化开发流程。 文件"a0b3eba746c24ae1bc4cae5a627c5ccd"可能是源代码、配置文件或日志文件,对于具体实现细节,需要进一步查看该...

    simplechatapp

    WebRTC(Web Real-Time Communication)是一种在浏览器之间实现实时通信的技术,无需插件或第三方软件即可进行音视频通话、文件传输等功能。本教程以"simplechatapp"为例,探讨如何使用JavaScript库SimpleWebRTC构建...

    php yii框架,javascript webrtc库 ,视频通话系统(14-15年毕业设计).zip

    这个项目的源代码位于"VideoChat-master"目录下,其中应该包含了项目的源代码文件、配置文件、资源文件等。通过分析和学习这个项目,你可以了解到如何将Yii框架与WebRTC技术结合,以及如何设计和实现一个完整的视频...

    WebRTC-Interns

    数据通道(DataChannels)也是WebRTC的一部分,用于传输非音视频数据,例如文本消息或文件。在SimpleWebRTC中,我们可以创建并监听`datachannel`事件来实现这一点。 ```javascript webrtc.createDataChannel('my ...

    WebVoice:WebRTC 技术的简单实现

    开发者可以使用 JavaScript 库,如 SimpleWebRTC 或 Jitsi Meet,简化开发过程。 **WebVoice-master 文件结构** 这个压缩包很可能包含了 WebVoice 的源代码,包括 HTML 文件(展示用户界面)、JavaScript 文件...

    WebRTC Blueprints

    - 可以实现文件传输、文本消息发送等多种功能。 - **应用场景** - **文件共享**: 实现文件的即时传输。 - **游戏同步**: 用于实时更新游戏状态。 - **协作编辑**: 多用户同时编辑文档或图像。 **安全性与隐私...

    WebRTC零基础开发者教程(52im.net)_2020.pdf

    - **Gyp工具**:GYP(Generate Your Project)是Google开发的跨平台项目构建系统,用于生成Makefile或Visual Studio项目文件等,使得开发者可以在不同操作系统上构建WebRTC。 - **Python工具**:Python在WebRTC...

    在Ubuntu上搭建一个基于webrtc的多人视频聊天服务实例代码详解

    将HTML文件、JavaScript脚本和所需资源文件部署到服务器,然后用户可以通过浏览器访问这个页面,输入房间号和昵称,即可开始视频聊天。 在开发过程中,可能会遇到的问题包括网络连接问题、浏览器兼容性问题、信令...

    WebRTCSetup

    3. **RTCDataChannel**:提供了一种在两个浏览器之间传输任意类型数据的方式,不受限制于音频或视频,适用于文件传输或实时聊天应用。 4. **信令**:在WebRTC中,信令是用于建立和管理连接的过程,通常通过...

    使用C#或在我的网站中使用的任何第三方工具在Asp.Net中进行视频聊天

    对于WebRTC的具体实现,有诸如SimpleWebRTC、Jitsi Meet等开源库可供选择。 在实现视频聊天时,还要注意处理各种挑战,如网络延迟、丢包、带宽限制等。可以通过使用适应性比特率流媒体(ABR)算法来动态调整视频...

    聊天应用

    为了提供良好的用户体验,聊天应用往往还需要包含一些附加功能,比如表情支持、文件传输、实时语音和视频通话等。这需要集成第三方库,如emoji picker库、WebRTC库(如SimpleWebRTC或Jitsi Meet)等。同时,性能优化...

    web_streaming

    1. **媒体编码**:为了在网络上传输,媒体文件(如视频和音频)需要被编码成特定格式,如H.264、AV1(视频)和AAC、Opus(音频)。这些编解码器可以提供高效的压缩率,减少带宽需求。 2. **流媒体协议**:常见的流...

    sipphone:Webrtc sip 客户端

    - **RTCDataChannel**: 提供低延迟的数据传输通道,可用于发送文本、文件或其他数据。 2. **SIP协议原理**: - **信令流程**: SIP通过发送INVITE、ACK、BYE等消息来发起、确认和结束通信会话。 - **注册、邀请和...

Global site tag (gtag.js) - Google Analytics