2014-07-03 38 views
2

我在做什麼是有可能使用opentok

我綜合opentok與我們的會員網站,它是工作完全正常檢查由用戶所消耗的通話時間。我們的網站是一個基於會員的網站,您可以與您安排與您會面的客戶註冊並舉辦一對一視頻會議。

我的理解是opentok

我明白,有月租費參與,然後根據我使用的分鐘數的什麼,我得到結算。 (第一10K分鐘後的課程)

我想知道

因爲人們將註冊使用我們的服務是什麼,我想跟蹤哪些用戶被消費了多少分鐘。那麼有沒有辦法跟蹤哪個用戶在OpenTok上消費了多少通話時間?

我真的很感謝這裏的任何指導。

+0

這與opentok或webrtc無關。你只需要計算用戶訪問特定頁面的時間量......因爲他們已經登錄了,所以你應該能夠從服務器追蹤它。或者一旦getusermedia被觸發,就立即向服務器發出定時器信號。 –

+0

感謝您的反饋,但您建議的風險有點高。即使會議沒有開始,頁面成員用來進行視頻會議的任何時間都可以訪問,假設預定的會議是明天,而今天你只是登錄瀏覽並碰巧訪問視頻會議頁面,那麼又是什麼? – Baig

+0

然後,當對等連接開始並且SDP開始交換時,您可以啓動計時器。 –

回答

1

捎帶在@ benjamintrent的評論,這裏有一些OpenTok特定的示例代碼。這實際上取決於您希望如何爲用戶開票,這裏有兩種情況:

如果您希望在用戶進入聊天時開始計費,您可以向服務器發送一個指示開始時間的發佈請求:

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); 

希望有幫助,祝你好運!

+0

非常感謝@songz,我真的很感激它,請告訴我這是什麼'$ .post(「/ server/userId「,{startTime:date.now()},function(){...});'你有沒有在他們的文檔中看到這個? – Baig