快速開始
1. 引入 SDK
HTML
<script src="/sdk/mst.js"></script> 2. 執行測速
JavaScript
// 建立實例 const mst = new MST();
// 監聽進度
mst.on('progress', ({ speed }) => {
console.log(speed.value, speed.unit);
});
// 測速完成
mst.on('complete', (result) => {
console.log('完成:', result.speed);
});
// 執行 await mst.run(); Live Demo
0
Mbps
Console Output
// 點擊上方按鈕查看輸出... API Reference
Constructor
new MST(options) | 選項 | 類型 | 預設值 | 說明 |
|---|---|---|---|
apiEndpoint | string | /api/mst | 後端 API 端點 |
duration | number | 10000 | 測速時間(毫秒) |
maxConnections | number | 3 | 最大並行連線數 |
chunkSize | number | 524288 | 下載區塊大小(bytes) |
Methods
| 方法 | 說明 |
|---|---|
run() | 執行測速,返回 Promise |
stop() | 停止測速 |
on(event, callback) | 註冊事件監聽器 |
off(event, callback) | 移除事件監聯器 |
Events
| 事件 | 觸發時機 | 資料 |
|---|---|---|
start | 測速開始 | { timestamp } |
targets | 取得節點 | { targets, count } |
progress | 進度更新 | { progress, elapsed, bytes, speed } |
complete | 測速完成 | { speed, bytes, duration, targets } |
error | 發生錯誤 | { error, message } |
為什麼測速要在前端執行?
這是一個很多人會問的問題:「為什麼不在後端測速就好?」
答案很簡單:測速一定要跑在頻寬瓶頸那一端。
// 如果在後端測速...
[後端伺服器] ←→ [CDN]
↑
測到的是「伺服器的網速」,不是用戶的
// 正確做法:在前端測速
[用戶瀏覽器] ←→ [CDN]
↑
測到的是「用戶的網速」 MST SDK 的設計就是基於這個原理:後端只負責提供 CDN 節點資訊,真正的下載流量都在用戶的瀏覽器執行。