[WebService] Tokbox, OpenTok Guide
Tokbox Developer Center @ Official Website
OpenTok Basics
OpenTok Basics @ Tokbox
伺服器和客戶端的功能
所有透過 OpenTok 平台建立的應用程式都有兩大核心,分別是伺服器(server)和客戶端(client):
Client
- 使用 client SDKs
- 從伺服器端取得 session ID 和 token
- 透過 token 和 session 建立連結
- 發佈(Publishes) 影音串流
- 訂閱(Subscribes) 影音串流
- 監聽 session 的事件
App Server
- 使用 server SDKs
- 在 OpenTok cloud 建立 Sessions
- 為 clients 建立 tokens
- 將 session IDs 和 tokens 傳送給 client
Session
- 在 OpenTok cloud 中的聊天室(Chat room)
- 將 clients 彼此連結
- 將事件傳送給 clients
Sessions
所有 OpenTok 的會議影片都發生在 sessions 中,你可以把 session 視為一個「房間」,在這個房間中 clients 可以和彼此有即時的互動,Sessions 是 host 在 OpenTok cloud 上的,在這上面可以管理使用者的連接(connections)、影音串流、和使用者的事件(例如有新的使用者加入),每一個 session 都有其獨特且唯一的 session ID,要讓多個 clients 彼此互動,使需要將他們連接到帶有同一個 session ID 的 session 即可。
App 伺服器 負責為每一個新的 client 建立新的 session 和產生獨特的權杖(authentication token),接著 client 就會使用這個 token 來和 session 建立連結。client 和 session 建立連線後,便可以發佈(publish) 串流到這個 session 上,並且訂閱(subscribe) 其他 client 的串流。
如果想檢視某一 session 更多的資訊,可以使用 Tokbox 提供的 Inspector。
連接、訂閱和發佈
STEP 1:APP 伺服器建立 session
你的 App 伺服器使用 OpenTok server SDK 透過 OpenTok REST API 來建立 session 並取得 session ID,想像 session 就是一個視訊會議的「房間」,在這個時間點裡面還沒有人:
STEP 2:client 進入應用程式,server 建立 token
當使用者進入 App 後,可以透過 OpenTok Client SDK 來從伺服器端取得 session 的資訊,這會包含獨特的 authentication token(也就是 client 端用的鑰匙):
STEP 3:client 和 session 連接並開始串流
client 透過 sessionID 和 token 來和 session 建立連結,此時客戶端可以發佈(publish)影音串流並監聽重要的事件(例如,新的使用者進入 session)。這時候,client 是此 session 的唯一參與者。
STEP 4:另一個新的 client 進入 session
當另一個使用者從另一個網頁或行動裝置進入 App 後,這個新的 client 一樣會從 app 伺服器取得 session ID 和獨特的 token,client 可以使用這些資訊來和 session 建立連線。
STEP 5:客戶端訂閱彼此的串流
現在和 session 建立連結後,Client 2 可以訂閱 Client 1 的串流,Client 2 便可以發佈自己的影音串流到 session,而 Client 1 也可以訂閱它,現在這兩個 client 已經在一對一聊天室中訂閱了彼此,而且他們都有監聽事件。