-
Notifications
You must be signed in to change notification settings - Fork 213
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Correction of a possible crash when a flash client subscribe more t…
…han one time to the same publication (TODO : see if we want to accept multiple subscriptions to the same publication from the same flash client) - Added a test to check if mona crash on a duplicate publication::play() - update of documentation (added roadmap page+update of contacts)
- Loading branch information
1 parent
6f0ae2b
commit cbc2cbc
Showing
14 changed files
with
223 additions
and
52 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,122 @@ | ||
package | ||
{ | ||
import flash.events.Event; | ||
import flash.events.NetStatusEvent; | ||
import flash.events.TimerEvent; | ||
import flash.net.NetConnection; | ||
import flash.net.NetStream; | ||
import flash.utils.ByteArray; | ||
import flash.utils.Timer; | ||
|
||
public class RTMPp2p extends Test | ||
{ | ||
private var _fullUrl:String; | ||
private var _nc1:NetConnection = null; | ||
private var _nc2:NetConnection = null; | ||
|
||
private var _tabNs:Array = new Array(); | ||
|
||
private var _nbPublishers:int=0; | ||
private var _nbSubscribers:int=0; | ||
|
||
public function RTMPp2p(app:FunctionalTests, host:String, url:String) | ||
{ | ||
super(app, "RTMPp2p", "Test p2p connections/deconnections between RTMP peers"); | ||
_fullUrl = "rtmp://" + host + url; | ||
} | ||
|
||
override public function run(onFinished:Function):void { | ||
|
||
super.run(onFinished); | ||
|
||
// Connect the 2 peers | ||
_nc1 = new NetConnection(); | ||
_nc1.addEventListener(NetStatusEvent.NET_STATUS, onStatus); | ||
_nc1.connect(_fullUrl); | ||
_nc2 = new NetConnection(); | ||
_nc2.addEventListener(NetStatusEvent.NET_STATUS, onStatus); | ||
_nc2.connect(_fullUrl); | ||
|
||
_nbPublishers=0; | ||
_nbSubscribers=0; | ||
} | ||
|
||
// Proper finished test | ||
private function closeAll():void { | ||
_nc1.removeEventListener(NetStatusEvent.NET_STATUS, onStatus); | ||
_nc1.close(); | ||
_nc1=null; | ||
_nc2.removeEventListener(NetStatusEvent.NET_STATUS, onStatus); | ||
_nc2.close(); | ||
_nc2=null; | ||
} | ||
|
||
public function onStatus(event:NetStatusEvent):void { | ||
|
||
_app.INFO("onStatus : "+event.info.code); | ||
|
||
switch(event.info.code) { | ||
case "NetConnection.Connect.Success": | ||
|
||
// Begin publishing | ||
var publisher:NetStream = new NetStream(NetConnection(event.target)); | ||
publisher.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler); | ||
publisher.publish((event.target==_nc1)? "stream1" : "stream2"); | ||
_tabNs.push(publisher); | ||
|
||
break; | ||
default: // Disconnection | ||
closeAll(); | ||
onResult({err:"Unexpected event : "+event.info.code}); | ||
} | ||
} | ||
|
||
private function netStatusHandler(event:NetStatusEvent):void { | ||
|
||
switch(event.info.code) { | ||
case "NetStream.Publish.Start": | ||
_nbPublishers++; | ||
|
||
// All publishers are ready? => play | ||
if (_nbPublishers==2) { | ||
_app.INFO("Subscribing to stream1 and stream2..."); | ||
|
||
var subscriber1:NetStream = new NetStream(_nc1); | ||
subscriber1.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler); | ||
subscriber1.play("stream2"); | ||
_tabNs.push(subscriber1); | ||
|
||
var subscriber2:NetStream = new NetStream(_nc2); | ||
subscriber2.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler); | ||
subscriber2.play("stream1"); | ||
_tabNs.push(subscriber2); | ||
} | ||
break; | ||
case "NetStream.Play.Start": | ||
_nbSubscribers++; | ||
|
||
// All subscribtions OK? => subscribe a second time to stream1 | ||
if (_nbSubscribers==2) { | ||
_app.INFO("Subscribing a second time to stream1..."); | ||
var subscriber:NetStream = new NetStream(_nc2); | ||
subscriber.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler); | ||
subscriber.play("stream1"); | ||
_tabNs.push(subscriber); | ||
} else if (_nbSubscribers==3) { | ||
_app.INFO("Closing connection 2..."); | ||
_nc2.close(); | ||
} | ||
break; | ||
case "NetStream.Play.Failed": | ||
closeAll(); | ||
if (_nbSubscribers==2) // Second subscription failed : Test OK! | ||
onResult({}); | ||
else | ||
onResult({err:"Unexpected failed event (publishers : "+_nbPublishers+" ; subscribers : "+_nbSubscribers+")"}); | ||
break; | ||
default: | ||
break; | ||
} | ||
} | ||
} | ||
} |
Binary file not shown.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Binary file not shown.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,10 +1,10 @@ | ||
|
||
Support & Contacts | ||
Services & Contacts | ||
############################## | ||
|
||
.. contents:: Table of Contents | ||
|
||
Contacts | ||
About us | ||
******************************************* | ||
|
||
We are 2 french engineers specialists of c++11 and server communication. | ||
|
@@ -32,12 +32,51 @@ Thomas Jammet | |
**Linkedin:** http://fr.linkedin.com/pub/thomas-jammet/5a/411/60b/ | ||
================================ =================================================================== | ||
|
||
Support | ||
Development | ||
******************************************* | ||
|
||
If you are looking for a commercial licence or want to build a project based on Mona and you want some support please contact us by mail ([email protected] or [email protected]). | ||
Mona is our full-time project. We develop according to our funding, trying to follow the `Roadmap <./roadmap.html>`_. | ||
But we can also personalize Mona to your needs, or extend its features for your systems. | ||
Or we can simply assist you and advise you in the deployment and the usage of Mona on your environment. | ||
|
||
To report a bug or ask any question you can also use the `Github issue page`_. | ||
|
||
Professional Support | ||
******************************************* | ||
|
||
We are currently working on our support agreement document, so please contact [email protected] if you are interested. The expected contract : | ||
|
||
|
||
+------------------------------+--------------------------------+ | ||
| | Professional Support | | ||
+==============================+================================+ | ||
| Max. initial response time | 3 business days | | ||
+------------------------------+--------------------------------+ | ||
| Price for 12 months | EUR 400 (approx. US-$ 489) | | ||
+------------------------------+--------------------------------+ | ||
|
||
|
||
Licence | ||
******************************************* | ||
|
||
Mona is licensed under the `GNU General Public License`_. | ||
|
||
But if you are looking for a commercial licence or you want to build a project based on Mona we offer : | ||
|
||
EUR 5000 (approx. US-$ 6116) | ||
|
||
Please contact us [email protected] or [email protected] | ||
|
||
|
||
Basic Support | ||
******************************************* | ||
|
||
Mona is an open source collaborative project hosted on github, so you can participate to the development if you share your modifications (GPL). | ||
You can also use the forum_ for questions and the `Github issue page`_ to report bugs. | ||
Nevertheless we do not guarantee any response delay. | ||
|
||
Please remember that our development is open source, so contributions are greatly appreciated : | ||
|
||
.. _`GNU General Public License` : http://www.gnu.org/licenses/ | ||
.. _`Github issue page` : https://github.com/MonaSolutions/MonaServer/issues | ||
.. _Cumulus : https://github.com/OpenRTMFP/Cumulus | ||
.. _Cumulus : https://github.com/OpenRTMFP/Cumulus | ||
.. _forum : https://groups.google.com/forum/#!forum/monaserver |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -23,7 +23,7 @@ Mona currently supports the following protocols: | |
- **HTTP** (with **JSON-RPC** and XML-RPC_), **Websocket**. | ||
|
||
We expect to add many other protocols, such as **WebRTC**, **HLS**, **IPTV**, but please remember that our development is open source | ||
so contributions are greatly appreciated: `us`_, `eu`_. | ||
so contributions are greatly appreciated: `$`_, `€`_. | ||
|
||
Mona is licensed under the `GNU General Public License`_, please contact us for a commercial licence at [email protected] or [email protected]. | ||
|
||
|
@@ -39,6 +39,6 @@ For some samples running on a `Raspberry Pi`_ please visit the `Samples page <./ | |
.. _LuaJIT : http://luajit.org/ | ||
.. _XML-RPC : http://xmlrpc.scripting.com/spec.html | ||
.. _`GNU General Public License` : http://www.gnu.org/licenses/ | ||
.. _`us` : https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=M24B32EH2GV3A | ||
.. _`eu` : https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=QPWT9V67YWSGG | ||
.. _`$` : https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=M24B32EH2GV3A | ||
.. _`€` : https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=QPWT9V67YWSGG | ||
.. _`Raspberry Pi` : http://www.raspberrypi.org/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
|
||
Roadmap | ||
############################## | ||
|
||
Mona is our full-time project. We develop according to our funding, trying to follow the following **Roadmap**. | ||
Here are listed the future evolutions of MonaServer and the time of development expected. | ||
If you want to finance/accelerate a specific development you can contact us at [email protected] or [email protected]. | ||
You can also make a donation for the project to allow us to continue the development : `$`_, `€`_. | ||
|
||
================================ =================================================================== ================================ | ||
Name Details of the feature Time required | ||
================================ =================================================================== ================================ | ||
Recording Adding asynchronous recording feature using IOCP, libkqueue... 5 weeks | ||
-------------------------------- ------------------------------------------------------------------- -------------------------------- | ||
SSL Support To support HTTPS, WenSocketSSL and RTMPS 3 weeks | ||
================================ =================================================================== ================================ | ||
|
||
.. _`$` : https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=M24B32EH2GV3A | ||
.. _`€` : https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=QPWT9V67YWSGG |