Skip to content

Instantly share code, notes, and snippets.

View Abhi1code's full-sized avatar
🎯
Focusing

Abhishek Meharia Abhi1code

🎯
Focusing
View GitHub Profile
"use strict";
var __importDefault = (this && this.__importDefault) || function(mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const CommandLineParser_1 = require("./CommandLineParser");
const Events_1 = require("./Events");
const Logger_1 = require("./Logger");
const PuppeteerHelper_1 = require("./PuppeteerHelper");
const Thumbnail_1 = require("./Thumbnail");
"use strict";
var __importDefault = (this && this.__importDefault) || function(mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const destreamer_1 = require("./destreamer");
const Logger_1 = require("./Logger");
const PuppeteerHelper_1 = require("./PuppeteerHelper");
const fs_1 = __importDefault(require("fs"));
const jwt_decode_1 = __importDefault(require("jwt-decode"));
"use strict";
var __importDefault = (this && this.__importDefault) || function(mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const CommandLineParser_1 = require("./CommandLineParser");
const Events_1 = require("./Events");
const Logger_1 = require("./Logger");
const PuppeteerHelper_1 = require("./PuppeteerHelper");
const Thumbnail_1 = require("./Thumbnail");
public class RTConnection {
private static Context context;
private PeerConnectionFactory peerConnectionFactory;
private PeerConnection peerConnection;
private DataChannel dataChannel;
private RTConnection(Context c) {
context = c;
}
public void close(){
if(peerConnection == null){
return;
}
if(dataChannel == null){
peerConnection.close();
peerConnection = null;
} else {
dataChannel.close();
public void createAnswer(){
peerConnection.createAnswer(new CustomSdpObserver(){
@Override
public void onCreateSuccess(SessionDescription sessionDescription) {
super.onCreateSuccess(sessionDescription);
peerConnection.setLocalDescription(new CustomSdpObserver(), sessionDescription);
// sessionDescription.description is string which needs to the shared across network
public void createOffer(){
peerConnection.createOffer(new CustomSdpObserver(){
@Override
public void onCreateSuccess(SessionDescription sessionDescription) {
super.onCreateSuccess(sessionDescription);
peerConnection.setLocalDescription(new CustomSdpObserver(), sessionDescription);
// sessionDescription.description is string which needs to the shared across network
public void initialize(){
PeerConnectionFactory.InitializationOptions initializationOptions =
PeerConnectionFactory.InitializationOptions.builder(context)
.createInitializationOptions();
PeerConnectionFactory.initialize(initializationOptions);
PeerConnectionFactory.Options options = new PeerConnectionFactory.Options();
peerConnectionFactory = PeerConnectionFactory.builder().setOptions(options)
.createPeerConnectionFactory();
DataChannel.Init dcInit = new DataChannel.Init();
dataChannel = peerConnection.createDataChannel("1", dcInit);
dataChannel.registerObserver(new CustomDataChannelObserver(){
@Override
public void onMessage(DataChannel.Buffer buffer) {
super.onMessage(buffer);
// will be called when message is received from another peer
}
});
public void setIceCandidate(String candidate, String sdpmid, int sdpmlineIndex){
peerConnection.addIceCandidate(new IceCandidate(sdpmid, sdpmlineIndex, candidate));
}