-
Notifications
You must be signed in to change notification settings - Fork 9
pipe/sctp4j
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
SCTP4J - by |pipe| This is a pure java implementation of the SCTP protocol. The target usecase is small devices that want to run the webRTC datachannel. This implementation does not include all the necessary parts for a full webRTC stack. You'll need DTLS (we use Bouncy Castle) and ICE/STUN/TURN (you can use Jitsi's ice4j or our slice ). This implementation assumes that datagrams will arrive from an DTLS/ICE stack which implements a Datagram Transport. It also assumes a consumer of open SCTP Streams (or datachannels) - it is pure middleware. Brief note on how to drive it: Once you have a BouncyCastle DTLS transport open to a WebRTC agent you can: public Association makeAssociation(DTLSTransport trans, AssociationListener li) { a = new ThreadedAssociation(trans, li); } The associationListener will fire events when an association is made and when inbound dataChannels are created. SCTPStreamListener sl; // create a streamListener here SCTPStream echo = a.mkStream("echo", sl); Will create an outbound stream labeled 'echo'; Background: The stack tries to keep the details of concurrency in a single package, so that the current pure thread model could be replaced with Akka actors or NIO-like async mechanisms. This implementation works well on small devices (eg Raspberry Pi, C.H.I.P etc) Thanks to Michael Tüxen (@tuexen) for help and advice Thanks to Emil Ivov (@Emcho) for Ice4J and encouragement. Some context on the long silence, we hurried a release out as opensource at the request of some friends, in the end they didn't adopt the release, so it got substantially sidelined whilst I worked on the rest of the |pipe| stack. I've now circled back and am attempting to make this a viable public project. Sorry for the delay.
About
Pure Java implementation of SCTP with webRTC data channel support