WebSocket是HTML5開始提供的一種在單個 TCP 連線上進行全雙工通訊的協議。
在WebSocket API中,瀏覽器和伺服器只需要做一個握手的動作,然後,瀏覽器和伺服器之間就形成了一條快速通道。兩者之間就直接可以資料互相傳送。
瀏覽器透過 JavaScript 向伺服器發出建立 WebSocket 連線的請求,連線建立以後,客戶端和伺服器端就可以透過 TCP 連線直接交換資料。
當你獲取 Web Socket 連線後,你可以透過send()方法來向伺服器傳送資料,並透過onmessage事件來接收伺服器返回的資料。
做的過程中,主要的思維是:在錄影頁面利用setTimeout()每隔固定的時間透過canvas將影片轉化為一幀一幀的影象,然後用websocket的socket.send()將圖片資料傳送給伺服器。在直播頁面就是先建立一個<img>的結構,透過websocket的socket.onmessage()獲取到影象資料,並展示<img>標籤上,形成直播。
附上程式碼
錄影頁面HTML結構
錄影頁面js
直播頁面HTML結構:
WebSocket是HTML5開始提供的一種在單個 TCP 連線上進行全雙工通訊的協議。
在WebSocket API中,瀏覽器和伺服器只需要做一個握手的動作,然後,瀏覽器和伺服器之間就形成了一條快速通道。兩者之間就直接可以資料互相傳送。
瀏覽器透過 JavaScript 向伺服器發出建立 WebSocket 連線的請求,連線建立以後,客戶端和伺服器端就可以透過 TCP 連線直接交換資料。
當你獲取 Web Socket 連線後,你可以透過send()方法來向伺服器傳送資料,並透過onmessage事件來接收伺服器返回的資料。
做的過程中,主要的思維是:在錄影頁面利用setTimeout()每隔固定的時間透過canvas將影片轉化為一幀一幀的影象,然後用websocket的socket.send()將圖片資料傳送給伺服器。在直播頁面就是先建立一個<img>的結構,透過websocket的socket.onmessage()獲取到影象資料,並展示<img>標籤上,形成直播。
附上程式碼
錄影頁面HTML結構
錄影頁面js
直播頁面HTML結構:
直播頁面JS