chrome.vpnProvider

Nội dung mô tả

Dùng API chrome.vpnProvider để triển khai ứng dụng VPN.

Quyền

vpnProvider

Phạm vi cung cấp

Chrome 43 trở lên Chỉ dành cho ChromeOS

Khái niệm và cách sử dụng

Cách sử dụng thông thường của chrome.vpnProvider như sau:

  • Tạo cấu hình VPN bằng cách gọi createConfig(). Cấu hình VPN là một mục nhập cố định mà người dùng thấy trong giao diện người dùng ChromeOS. Người dùng có thể chọn một cấu hình VPN trong danh sách và kết nối với cấu hình đó hoặc ngắt kết nối khỏi cấu hình đó.

  • Thêm trình nghe vào các sự kiện onPlatformMessage, onPacketReceivedonConfigRemoved.

  • Khi người dùng kết nối với cấu hình VPN, onPlatformMessage sẽ nhận được thông báo "connected". Khoảng thời gian giữa các thông báo "connected""disconnected" được gọi là "phiên VPN". Trong khoảng thời gian này, tiện ích nhận được tin nhắn được cho là sở hữu phiên VPN.

  • Bắt đầu kết nối với máy chủ VPN và khởi động ứng dụng VPN.

  • Đặt thông số của kết nối bằng cách gọi setParameters().

  • Thông báo trạng thái kết nối dưới dạng "connected" bằng cách gọi notifyConnectionStateChanged().

  • Khi các bước trước đó đã hoàn tất mà không gặp lỗi, một đường hầm ảo sẽ được tạo cho ngăn xếp mạng của ChromeOS. Bạn có thể gửi gói IP qua đường hầm bằng cách gọi sendPacket() và nhận mọi gói bắt nguồn từ thiết bị ChromeOS bằng trình xử lý sự kiện onPacketReceived.

  • Khi người dùng ngắt kết nối khỏi cấu hình VPN, onPlatformMessage sẽ được kích hoạt cùng với thông báo "disconnected".

  • Nếu không cần cấu hình VPN nữa, bạn có thể huỷ cấu hình đó bằng cách gọi destroyConfig().

Loại

Parameters

Thuộc tính

  • xử lý

    string

    Địa chỉ IP cho giao diện VPN trong ký hiệu Định tuyến liên miền không phân lớp (CIDR). IPv4 hiện là chế độ duy nhất được hỗ trợ.

  • broadcastAddress

    chuỗi không bắt buộc

    Địa chỉ truyền tin cho giao diện VPN. (mặc định: suy luận từ địa chỉ IP và mặt nạ)

  • dnsServers

    chuỗi[]

    Danh sách IP của máy chủ DNS.

  • domainSearch

    string[] không bắt buộc

    Danh sách các miền tìm kiếm. (mặc định: không có miền tìm kiếm)

  • exclusionList

    chuỗi[]

    Loại trừ lưu lượng truy cập mạng ra khỏi danh sách các khối IP trong ký hiệu Định tuyến liên miền không lớp (CIDR) khỏi đường hầm. Bạn có thể dùng khoá này để bỏ qua lưu lượng truy cập đến và đi từ máy chủ VPN. Khi nhiều quy tắc khớp với một đích đến, quy tắc có tiền tố dài nhất sẽ chiến thắng. Các mục nhập tương ứng với cùng một khối CIDR được coi là trùng lặp. Những nội dung trùng lặp như vậy trong danh sách được đối chiếu (exclusionList +includedList) sẽ bị loại bỏ, còn mục nhập trùng lặp chính xác sẽ bị loại bỏ thì không xác định.

  • inclusionList

    chuỗi[]

    Đưa lưu lượng truy cập mạng vào danh sách khối IP trong ký hiệu CIDR cho đường hầm. Bạn có thể dùng tham số này để thiết lập một đường hầm phân tách. Theo mặc định, không có giao thông nào được hướng vào đường hầm. Thêm mục nhập "0.0.0.0/0" vào danh sách này sẽ nhận được tất cả lưu lượng người dùng được chuyển hướng đến đường hầm. Khi nhiều quy tắc khớp với một đích đến, quy tắc có tiền tố dài nhất sẽ chiến thắng. Các mục nhập tương ứng với cùng một khối CIDR được coi là trùng lặp. Những nội dung trùng lặp như vậy trong danh sách được đối chiếu (exclusionList +includedList) sẽ bị loại bỏ, còn mục nhập trùng lặp chính xác sẽ bị loại bỏ thì không xác định.

  • mtu

    chuỗi không bắt buộc

    Chế độ cài đặt MTU cho giao diện VPN. (mặc định: 1500 byte)

  • kết nối lại

    chuỗi không bắt buộc

    Chrome 51 trở lên

    Liệu tiện ích VPN có triển khai tính năng tự động kết nối lại hay không.

    Nếu đúng, thông báo trên nền tảng linkDown, linkUp, linkChanged, suspendresume sẽ được dùng để báo hiệu các sự kiện tương ứng. Nếu bạn đặt chính sách này thành sai, hệ thống sẽ buộc ngắt kết nối VPN nếu cấu trúc mạng thay đổi và người dùng sẽ phải kết nối lại theo cách thủ công. (mặc định: false)

    Đây là thuộc tính mới trong Chrome 51. Thuộc tính này sẽ tạo ra một ngoại lệ trong các phiên bản cũ. Bạn có thể sử dụng try/catch để bật tính năng này theo cách có điều kiện dựa trên khả năng hỗ trợ trình duyệt.

PlatformMessage

Nền tảng sử dụng enum này để thông báo cho ứng dụng khách về trạng thái phiên VPN.

Liệt kê

"đã kết nối"
Cho biết rằng cấu hình VPN đã kết nối.

"đã ngắt kết nối"
Cho biết rằng cấu hình VPN đã bị ngắt kết nối.

"error"
Cho biết đã xảy ra lỗi khi kết nối VPN, chẳng hạn như hết thời gian chờ. Nội dung mô tả lỗi được cung cấp dưới dạng đối số lỗi cho onPlatformMessage.

"linkDown"
Cho biết rằng kết nối mạng thực tế mặc định bị ngắt.

"linkUp"
Cho biết rằng kết nối mạng thực tế mặc định đã được sao lưu.

"linkChanged"
Cho biết kết nối mạng thực mặc định đã thay đổi, ví dụ: wifi->thiết bị di động.

"suspend"
Cho biết hệ điều hành đang chuẩn bị tạm ngưng, vì vậy VPN sẽ ngắt kết nối. Chúng tôi không đảm bảo việc gia hạn này sẽ nhận được sự kiện này trước khi tạm ngưng.

"resume"
Cho biết rằng hệ điều hành đã tiếp tục và người dùng đã đăng nhập lại, do đó, VPN cần cố gắng kết nối lại.

UIEvent

Nền tảng sử dụng enum này để biểu thị sự kiện đã kích hoạt onUIEvent.

Liệt kê

"showAddDialog"
Yêu cầu ứng dụng VPN hiển thị hộp thoại thêm cấu hình cho người dùng.

"showConfigureDialog"
Yêu cầu ứng dụng VPN hiển thị hộp thoại cài đặt cấu hình cho người dùng.

VpnConnectionState

Ứng dụng VPN sử dụng enum này để thông báo cho nền tảng về trạng thái hiện tại. Nhờ vậy, bạn có thể truyền tải thông điệp có ý nghĩa cho người dùng.

Liệt kê

"đã kết nối"
Chỉ định rằng kết nối VPN đã thành công.

"failure"
Chỉ định rằng kết nối VPN không thành công.

Phương thức

createConfig()

Cam kết
chrome.vpnProvider.createConfig(
  name: string,
  callback?: function,
)

Tạo một cấu hình VPN mới, duy trì qua nhiều phiên đăng nhập của người dùng.

Tham số

  • tên

    string

    Tên của cấu hình VPN.

  • số gọi lại

    hàm không bắt buộc

    Tham số callback sẽ có dạng như sau:

    (id: string)=>void

    • id

      string

      Mã nhận dạng duy nhất cho cấu hình đã tạo hoặc undefined khi bị lỗi.

Giá trị trả về

  • Hứa hẹn<string>

    Chrome 96 trở lên

    Lời hứa được hỗ trợ trong Manifest V3 trở lên nhưng lệnh gọi lại được cung cấp để có khả năng tương thích ngược. Bạn không thể sử dụng cả hai trong cùng một lệnh gọi hàm. Lời hứa sẽ được phân giải bằng cùng một loại được truyền đến lệnh gọi lại.

destroyConfig()

Cam kết
chrome.vpnProvider.destroyConfig(
  id: string,
  callback?: function,
)

Huỷ cấu hình VPN do tiện ích tạo.

Tham số

  • id

    string

    Mã nhận dạng cấu hình VPN cần huỷ.

  • số gọi lại

    hàm không bắt buộc

    Tham số callback sẽ có dạng như sau:

    ()=>void

Giá trị trả về

  • Promise<void>

    Chrome 96 trở lên

    Lời hứa được hỗ trợ trong Manifest V3 trở lên nhưng lệnh gọi lại được cung cấp để có khả năng tương thích ngược. Bạn không thể sử dụng cả hai trong cùng một lệnh gọi hàm. Lời hứa sẽ được phân giải bằng cùng một loại được truyền đến lệnh gọi lại.

notifyConnectionStateChanged()

Cam kết
chrome.vpnProvider.notifyConnectionStateChanged(
  state: VpnConnectionState,
  callback?: function,
)

Thông báo trạng thái phiên VPN cho nền tảng. Thao tác này chỉ thành công khi phiên VPN thuộc sở hữu của tiện ích.

Tham số

  • Trạng thái phiên VPN của ứng dụng VPN.

  • số gọi lại

    hàm không bắt buộc

    Tham số callback sẽ có dạng như sau:

    ()=>void

Giá trị trả về

  • Promise<void>

    Chrome 96 trở lên

    Lời hứa được hỗ trợ trong Manifest V3 trở lên nhưng lệnh gọi lại được cung cấp để có khả năng tương thích ngược. Bạn không thể sử dụng cả hai trong cùng một lệnh gọi hàm. Lời hứa sẽ được phân giải bằng cùng một loại được truyền đến lệnh gọi lại.

sendPacket()

Cam kết
chrome.vpnProvider.sendPacket(
  data: ArrayBuffer,
  callback?: function,
)

Gửi một gói IP qua đường hầm được tạo cho phiên VPN. Thao tác này chỉ thành công khi phiên VPN thuộc sở hữu của tiện ích.

Tham số

  • data

    ArrayBuffer

    Gói IP sẽ được gửi đến nền tảng.

  • số gọi lại

    hàm không bắt buộc

    Tham số callback sẽ có dạng như sau:

    ()=>void

Giá trị trả về

  • Promise<void>

    Chrome 96 trở lên

    Lời hứa được hỗ trợ trong Manifest V3 trở lên nhưng lệnh gọi lại được cung cấp để có khả năng tương thích ngược. Bạn không thể sử dụng cả hai trong cùng một lệnh gọi hàm. Lời hứa sẽ được phân giải bằng cùng một loại được truyền đến lệnh gọi lại.

setParameters()

Cam kết
chrome.vpnProvider.setParameters(
  parameters: Parameters,
  callback?: function,
)

Đặt tham số cho phiên VPN. Lệnh này sẽ được gọi ngay sau khi nhận được "connected" từ nền tảng. Thao tác này chỉ thành công khi phiên VPN thuộc sở hữu của tiện ích.

Tham số

  • tham số

    Các tham số cho phiên VPN.

  • số gọi lại

    hàm không bắt buộc

    Tham số callback sẽ có dạng như sau:

    ()=>void

Giá trị trả về

  • Promise<void>

    Chrome 96 trở lên

    Lời hứa được hỗ trợ trong Manifest V3 trở lên nhưng lệnh gọi lại được cung cấp để có khả năng tương thích ngược. Bạn không thể sử dụng cả hai trong cùng một lệnh gọi hàm. Lời hứa sẽ được phân giải bằng cùng một loại được truyền đến lệnh gọi lại.

Sự kiện

onConfigCreated

chrome.vpnProvider.onConfigCreated.addListener(
  callback: function,
)

Được kích hoạt khi nền tảng tạo cấu hình cho tiện ích.

Tham số

  • số gọi lại

    hàm

    Tham số callback sẽ có dạng như sau:

    (id: string,name: string,data: object)=>void

    • id

      string

    • tên

      string

    • data

      đối tượng

onConfigRemoved

chrome.vpnProvider.onConfigRemoved.addListener(
  callback: function,
)

Được kích hoạt khi nền tảng xoá cấu hình do tiện ích tạo.

Tham số

  • số gọi lại

    hàm

    Tham số callback sẽ có dạng như sau:

    (id: string)=>void

    • id

      string

onPacketReceived

chrome.vpnProvider.onPacketReceived.addListener(
  callback: function,
)

Được kích hoạt khi nhận được một gói IP thông qua đường hầm cho phiên VPN do tiện ích sở hữu.

Tham số

  • số gọi lại

    hàm

    Tham số callback sẽ có dạng như sau:

    (data: ArrayBuffer)=>void

    • data

      ArrayBuffer

onPlatformMessage

chrome.vpnProvider.onPlatformMessage.addListener(
  callback: function,
)

Được kích hoạt khi nền tảng nhận được thông báo về cấu hình VPN do tiện ích sở hữu.

Tham số

  • số gọi lại

    hàm

    Tham số callback sẽ có dạng như sau:

    (id: string,message: PlatformMessage,error: string)=>void

onUIEvent

chrome.vpnProvider.onUIEvent.addListener(
  callback: function,
)

Được kích hoạt khi có một sự kiện giao diện người dùng cho phần mở rộng. Sự kiện giao diện người dùng là các tín hiệu từ nền tảng cho ứng dụng biết rằng hộp thoại giao diện người dùng cần hiển thị cho người dùng.

Tham số

  • số gọi lại

    hàm

    Tham số callback sẽ có dạng như sau:

    (event: UIEvent,id?: string)=>void

    • event
    • id

      chuỗi không bắt buộc