можно ли проверить время разговора, потребляемое пользователями с помощью opentok

Что я делаю

Я интегрировал opentok с нашим сайтом членства, и он отлично работает. Наш веб-сайт является сайтом для участников, где вы можете зарегистрироваться и проводить видеоконференции один на один со своими клиентами, которые запланировали встречу с вами.

Как я понимаю opentok

Я понимаю, что взимается ежемесячная плата, а затем в зависимости от количества использованных минут мне выставляется счет. (конечно после первых 10К минут)

Что я хочу знать

Поскольку люди будут регистрироваться для использования нашего сервиса, я хотел отслеживать, какой пользователь тратит сколько минут. Итак, есть ли способ отслеживать, какой пользователь сколько времени потратил на разговоры на OpenTok?

Я буду очень признателен за любое руководство здесь.


person Baig    schedule 03.07.2014    source источник
comment
Это действительно не имеет ничего общего с opentok или webrtc. вы просто хотите подсчитать количество времени, в течение которого пользователь обращается к определенной странице... поскольку у них уже есть логины, вы должны иметь возможность отслеживать их с сервера. Или запустить сигнал таймера на сервер после запуска getusermedia.   -  person Benjamin Trent    schedule 03.07.2014
comment
Спасибо за отзыв, но то, что вы предлагаете, немного рискованно. К странице, которую участники используют для проведения видеоконференции, можно получить доступ в любое время, даже если собрание еще не началось, предположим, что собрание запланировано на завтра, а сегодня вы только что вошли в систему, чтобы просмотреть и посетить страницу видеоконференции, а что тогда?   -  person Baig    schedule 03.07.2014
comment
Затем вы можете запустить таймер, когда запускается одноранговое соединение и начинается обмен SDP.   -  person Benjamin Trent    schedule 03.07.2014
comment
Вот тут мне нужна помощь, как это сделать? у вас есть примеры, которые я могу изучить? сайт, над которым я работаю, разработан на PHP и JavaScript   -  person Baig    schedule 03.07.2014
comment
Вы можете отправить сигнал на свой PHP-сервер и отслеживать время начала и окончания в базе данных и просто вести подсчеты.   -  person Benjamin Trent    schedule 03.07.2014
comment
Спасибо за отзыв, я посмотрю на это, посмотрим, что другие эксперты скажут об этом   -  person Baig    schedule 03.07.2014


Ответы (1)


В дополнение к комментариям @benjamintrent, вот несколько примеров кода для OpenTok. Это действительно зависит от того, как вы хотите выставлять счета своим пользователям, вот 2 случая:

Если вы хотите, чтобы пользователи начали выставлять счета в тот момент, когда они заходят в чат, вы можете отправить почтовый запрос на свой сервер с указанием времени начала:

session.on("sessionConnected", function(err){
  if(!err){
    $.post("/server/userId", {startTime: date.now()}, function(){...});
  }
});

В большинстве случаев вы, вероятно, захотите начать выставление счетов, когда пользователи фактически подключатся к пользователям, к которым они должны были быть подключены:

session.on("streamCreated", function(stream){
  if(stream.connection.connectionData == "username I was supposed to connect to"){
    $.post("/server/userId", {startTime: date.now()}, function(){...});
  }
});

Вероятно, вы захотите завершить сеанс видеочата, когда он отключится от сеанса или если человек, с которым вы должны поговорить, покинет чат:

session.on("streamDestroyed", function(stream){
  if(stream.connection.connectionData == "username I was supposed to connect to"){
    $.post("/server/userId", {endTime: date.now()}, function(){...});
  }
});

К сожалению, если пользователь закроет браузер, вы не получите событие sessionDisconnected или streamDestroyed. Чтобы решить эту проблему, вы можете отправлять на сервер каждые 5 секунд почтовый запрос пульса. Ваш сервер будет знать, что пользователь закрыл свой браузер, если он перестанет получать запрос сердцебиения, и соответствующим образом завершит выставление счетов.

setInterval(function(){
  $.post("/heartbeat/userId", {currentTime: date.now()}, function(){...});
}, 5000);

Надеюсь помог, удачи!

person songz    schedule 07.07.2014
comment
Большое спасибо, @songz, я очень признателен, не могли бы вы рассказать мне, что это делает $.post("/server/userId", {startTime: date.now()}, function(){...});, вы видели это в их документации? - person Baig; 08.07.2014