zdpjs_webrtc
Version:
基于easyrtc二次开发的webrtc框架
947 lines (317 loc) • 17.1 kB
HTML
<html lang="en">
<head>
<meta charset="utf-8">
<title>EasyRTC Documentation</title>
<script src="scripts/prettify/prettify.js"> </script>
<script src="scripts/prettify/lang-css.js"> </script>
<!--[if lt IE 9]>
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
<link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
<link href="../assets/easyrtc-docs-jsdoc-styles-1.css" media="all" rel="stylesheet" />
</head>
<body>
<header class="template">
<div class="wrapper-content">
<a href="../index.html"><img src="../assets/easyrtc-logo.png" alt="EasyRTC Documentation"></a>
<h1 title="EasyRTC Documentation">Documentation</h1>
</div>
</header>
<div class="wrapper-docs">
<nav>
<h2><a href="../index.html">Docs Home</a></h2>
<h3>EasyRTC Guides</h3>
<ul>
<li><a href="../easyrtc_faq.html">FAQ</a></li>
<li><a href="../easyrtc_gettingStarted.html">Getting Started</a></li>
<li><a href="../easyrtc_server_install.html">EasyRTC Server: Installation</a></li>
<li><a href="../easyrtc_client_tutorial.html">EasyRTC Framework Tutorial</a></li>
<li><a href="../easyrtc_rooms.html">Rooms</a></li>
<li><a href="../easyrtc_server_configuration.html">EasyRTC Server: Configuration</a></li>
<li><a href="../easyrtc_server_events.html">EasyRTC Server: Events</a></li>
<li><a href="../easyrtc_server_ice.html">EasyRTC Server: ICE Configuration</a></li>
<li><a href="../easyrtc_with_other_servers.html">Using Alongside Other Servers</a></li>
<li><a href="../easyrtc_server_ssl.html">EasyRTC Server: Using SSL</a></li>
<li><a href="../easyrtc_webrtc_problems.html">WebRTC Problems and Possible Fixes</a></li>
<li><a href="../easyrtc_upcoming_features.html">Upcoming Features</a></li>
<li><a href="../easyrtc_changelog.html">Change Log</a></li>
</ul>
<h3>EasyRTC Client Classes</h3>
<ul>
<li><a href="../client-api/Easyrtc.html">Easyrtc</a></li>
<li><a href="../client-api/Easyrtc_App.html">Easyrtc_App</a></li>
<li><a href="../client-api/Easyrtc_ft.html">Easyrtc_ft</a></li>
<li><a href="../client-api/Easyrtc_IframeCapture.html">Easyrtc_IframeCapture</a></li>
<li><a href="../client-api/Easyrtc_No_IframeCapture.html">Easyrtc_No_IframeCapture</a></li>
<li><a href="../client-api/Easyrtc_Rates.html">Easyrtc_Rates</a></li>
<li><a href="../client-api/Easyrtc_Recorder.html">Easyrtc_Recorder</a></li>
</ul>
<h3>EasyRTC Server Modules</h3>
<ul>
<li><a href="../server-api/module-easyrtc_default_event_listeners.html">easyrtc_default_event_listeners</a></li>
<li><a href="../server-api/module-easyrtc_default_options.html">easyrtc_default_options</a></li>
<li><a href="../server-api/module-easyrtc_private_obj.html">easyrtc_private_obj</a></li>
<li><a href="../server-api/module-easyrtc_public_obj.html">easyrtc_public_obj</a></li>
<li><a href="../server-api/module-easyrtc_util.html">easyrtc_util</a></li>
<li><a href="../server-api/module-general_util.html">general_util</a></li>
</ul>
<h3>EasyRTC Server Classes</h3>
<ul>
<li><a href="../server-api/module-easyrtc_default_event_listeners-eventListener.html">eventListener</a></li>
<li><a href="../server-api/module-easyrtc_public_obj-pub.html">pub</a></li>
<li><a href="../server-api/module-easyrtc_public_obj-pub.events.html">events</a></li>
<li><a href="../server-api/module-easyrtc_public_obj-pub.util.html">util</a></li>
<li><a href="../server-api/module-easyrtc_util-eu.html">eu</a></li>
<li><a href="../server-api/module-general_util-g.html">g</a></li>
<li><a href="../server-api/pub.appObj.html">appObj</a></li>
<li><a href="../server-api/pub.appObj.connectionObj.html">connectionObj</a></li>
<li><a href="../server-api/pub.appObj.connectionObj.connectionRoomObj.html">connectionRoomObj</a></li>
<li><a href="../server-api/pub.appObj.roomObj.html">roomObj</a></li>
<li><a href="../server-api/pub.appObj.sessionObj.html">sessionObj</a></li>
</ul>
</nav>
<div class="easyrtc-docs-content">
<div id="main">
<h1 class="page-title">Class: Easyrtc_ft</h1>
<section>
<header>
<h2>Easyrtc_ft</h2>
<div class="class-description">Easyrtc_ft.</div>
</header>
<article>
<div class="container-overview">
<h2>Constructor</h2>
<h4 class="name" id="Easyrtc_ft"><span class="type-signature"></span>new Easyrtc_ft<span class="signature">()</span><span class="type-signature"> → {<a href="Easyrtc_ft.html">Easyrtc_ft</a>}</span></h4>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="easyrtc_ft.js.html">easyrtc_ft.js</a>, <a href="easyrtc_ft.js.html#line60">line 60</a>
</li></ul></dd>
</dl>
<h5>Returns:</h5>
<div class="param-desc">
the new easyrtc instance.
</div>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type"><a href="Easyrtc_ft.html">Easyrtc_ft</a></span>
</dd>
</dl>
</div>
<h3 class="subsection-title">Members</h3>
<h4 class="name" id=".errCodes"><span class="type-signature">(static) </span>errCodes<span class="type-signature"> :Object</span></h4>
<div class="description">
Error codes that the EasyRTC will use in the errorCode field of error object passed
to error handler set by easyrtc.setOnError. The error codes are short printable strings.
</div>
<h5>Type:</h5>
<ul>
<li>
<span class="param-type">Object</span>
</li>
</ul>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="easyrtc_ft.js.html">easyrtc_ft.js</a>, <a href="easyrtc_ft.js.html#line67">line 67</a>
</li></ul></dd>
</dl>
<h4 class="name" id=".saveAs"><span class="type-signature">(static) </span>saveAs<span class="type-signature"></span></h4>
<div class="description">
This is a wrapper around Eli Grey's saveAs function. This saves to the browser's downloads directory.
</div>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="easyrtc_ft.js.html">easyrtc_ft.js</a>, <a href="easyrtc_ft.js.html#line773">line 773</a>
</li></ul></dd>
</dl>
<h3 class="subsection-title">Methods</h3>
<h4 class="name" id=".buildDragNDropRegion"><span class="type-signature">(static) </span>buildDragNDropRegion<span class="signature">(droptargetName, filesHandler)</span><span class="type-signature"></span></h4>
<div class="description">
Establish an area as a drag-n-drop drop site for files.
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>droptargetName</code></td>
<td class="type">
<span class="param-type">DOMString</span>
</td>
<td class="description last">the id of the drag-and-drop site or the actual DOM object.</td>
</tr>
<tr>
<td class="name"><code>filesHandler</code></td>
<td class="type">
<span class="param-type">function</span>
</td>
<td class="description last">function that accepts an array of File's.</td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="easyrtc_ft.js.html">easyrtc_ft.js</a>, <a href="easyrtc_ft.js.html#line78">line 78</a>
</li></ul></dd>
</dl>
<h4 class="name" id=".buildFileReceiver"><span class="type-signature">(static) </span>buildFileReceiver<span class="signature">(acceptRejectCB, blobAcceptor, statusCB)</span><span class="type-signature"></span></h4>
<div class="description">
Enable datachannel based file receiving. The received blobs get passed to the statusCB in the 'eof' typed message.
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>acceptRejectCB</code></td>
<td class="type">
<span class="param-type">function</span>
</td>
<td class="description last">this function is called when another peer
(otherGuy) offers to send you a list of files. this function should call it's wasAccepted function with true to
allow those files to be sent, or false to disallow them.</td>
</tr>
<tr>
<td class="name"><code>blobAcceptor</code></td>
<td class="type">
<span class="param-type">function</span>
</td>
<td class="description last">this function is called three arguments arguments: the suppliers easyrtcid, a blob and a filename. It is responsible for
saving the blob to the file, usually using easyrtc_ft.saveAs.</td>
</tr>
<tr>
<td class="name"><code>statusCB</code></td>
<td class="type">
<span class="param-type">type</span>
</td>
<td class="description last">this function is called with the current state of file receiving. It is passed two arguments:
otherGuy - the easyrtcid of the person sending the files. *
msg - one of the following structures:
{status:"done", reason:"accept_failed"}
{status:"done", reason:"success"}
{status:"done", reason:"cancelled"}
{status:"eof"},
{status:"started_file, name:"filename"}
{status:"progress", name:filename,
received:received_size_in_bytes,
size:file_size_in_bytes }</td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="easyrtc_ft.js.html">easyrtc_ft.js</a>, <a href="easyrtc_ft.js.html#line567">line 567</a>
</li></ul></dd>
</dl>
<h5>Example</h5>
<pre class="prettyprint"><code>easyrtc_ft(
function(otherGuy, filenamelist, wasAccepted) { wasAccepted(true);},
function(otherGuy, blob, filename) { easyrtc_ft(blob, filename);},
function(otherGuy, status) { console.log("status:" + JSON.stringify(status))}
);</code></pre>
<h4 class="name" id=".buildFileSender"><span class="type-signature">(static) </span>buildFileSender<span class="signature">(destUser, progressListener, options)</span><span class="type-signature"> → {function}</span></h4>
<div class="description">
Builds a function that can be used to send a group of files to a peer.
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>destUser</code></td>
<td class="type">
<span class="param-type">String</span>
</td>
<td class="description last">easyrtcid of the person being sent to.</td>
</tr>
<tr>
<td class="name"><code>progressListener</code></td>
<td class="type">
<span class="param-type">function</span>
</td>
<td class="description last">if provided, is called with the following objects:
{status:"waiting"} // once a file offer has been sent but not accepted or rejected yet
{status:"started_file", name: filename}
{status:"working", name:filename, position:position_in_file, size:size_of_current_file, numFiles:number_of_files_left}
{status:"cancelled"} // if the remote user cancels the sending
{status:"done"} // when the file is done
the progressListener should always return true for normal operation, false to cancel a filetransfer.</td>
</tr>
<tr>
<td class="name"><code>options</code></td>
<td class="type">
<span class="param-type">Object</span>
</td>
<td class="description last">overide default file transfer settings
maxPacketSize is the size (before base64 encoding) that is sent in a
single data channel message, in bytes.
maxChunkSize is the amount read from a file at a time, in bytes.
ackThreshold is the amount of data that can be sent before an ack is
received from the party we're sending to, bytes.
maxChunkSize should be a multiple of maxPacketSize.
ackThreshold should be several times larger than maxChunkSize. For
network paths that have greater latency, increase
ackThreshold further.</td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="easyrtc_ft.js.html">easyrtc_ft.js</a>, <a href="easyrtc_ft.js.html#line206">line 206</a>
</li></ul></dd>
</dl>
<h5>Returns:</h5>
<div class="param-desc">
an object that accepts an array of File (the Files to be sent), and a boolean
</div>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">function</span>
</dd>
</dl>
</article>
</section>
</div>
<nav class="hide"><h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Easyrtc.html">Easyrtc</a></li><li><a href="Easyrtc_App.html">Easyrtc_App</a></li><li><a href="Easyrtc_ft.html">Easyrtc_ft</a></li><li><a href="Easyrtc_IframeCapture.html">Easyrtc_IframeCapture</a></li><li><a href="Easyrtc_No_IframeCapture.html">Easyrtc_No_IframeCapture</a></li><li><a href="Easyrtc_Rates.html">Easyrtc_Rates</a></li><li><a href="Easyrtc_Recorder.html">Easyrtc_Recorder</a></li></ul></nav>
</div>
</div>
<footer class="template">
<div class="wrapper-content">
<p>Copyright ©2016 EasyRTC</p>
</div>
</footer>
<!-- <script>prettyPrint();</script> -->
<!-- <script src="scripts/linenumber.js"></script> -->
</body>
</html>