Skip to content
/ ptt Public
forked from Merve40/ptt

A simple Push-to-Talk implementation

License

Notifications You must be signed in to change notification settings

ozenc/ptt

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

61 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Push-to-Talk

This is a simple push-to-talk implementation based on Websockets. It includes both the server and client implementation.
It can be used to broadcast voice-messages in real-time to multiple users, that are subscribed to the same channel.

Support

Client implementation is only supported on Web-browsers, that provide AudioContext and MediaRecorder. Web-App was tested on Chrome & Firefox (for Desktop & Android).

  • does not work in any ios browsers

Development

This project was implemented using Node.js

  • install npm (node package manager)
  • install dependencies in project
$ npm install
  • run with
$ npm start

Testing

As of recently (Oct 2019), Firefox and Chrome prohibited the access to the microphone without https connection. In order to test full functionality use localtunnel.

Usage

Usage of this api can be found in index.js

var myPttButton = document.querySelector('#btn-record');
var subscribeButton = document.querySelector("#btn-subscribe");
var channelInput = document.querySelector("#input-channel");
var channel;

ptt.connect().then((connection)=>{
    connection.bind(myPttButton);

    function handleSubscribeSuccess(response){        
       console.log(`Subscribed to channel '${channel}'`);
    }

    function handleError(){
        console.log("Could not subscribe!");
    }

    subscribeButton.onclick = (e)=>{
        if(channelInput.value.trim().length > 0){
            channel = channelInput.value.trim();
            connection.subscribe(channel).then(handleSubscribeSuccess).catch(handleError);
            channelInput.value = "";
        }
    };
    
}).catch(err=>{
    console.log("Connection failed!");
});

Demo

https://ptt-demo.herokuapp.com

Android Integration

see PTT for Android

iOS Integration (in development)

see PTT for iOS

About

A simple Push-to-Talk implementation

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 95.6%
  • HTML 4.4%