Skip to content

OpenIoTHub/gateway-chrome

Repository files navigation

OpenIoTHub Gateway - Chrome Extension

将 Chrome 浏览器变为 OpenIoTHub IoT 网关,以插件界面显示二维码。

功能

  • 自动登录: 自动调用 OpenIoTHub 云端 API 获取 JWT Token 并连接
  • 二维码展示: 在插件弹窗中展示网关二维码,使用云亿连/OpenIoTHub App 扫码添加
  • 多网关支持: 支持同时管理多个网关会话
  • Token 管理: 支持手动输入 Token 登录,支持移除单个网关
  • 自动重连: 服务断开后自动重连(约 20 秒一次心跳检测)
  • WebSocket 代理: 支持 WebSocket/WebSocket Secure 连接代理
  • 子会话: 支持 Yamux 子会话嵌套
  • 服务处理: 支持 GetSystemStatus 等服务类型

浏览器限制

由于 Chrome 扩展的沙箱环境限制,以下 gateway-go 功能无法在 Chrome 扩展中实现:

功能 状态 原因
TCP 代理 不支持 浏览器无原始 TCP 套接字
STCP (TLS) 代理 不支持 同上
UDP 代理 不支持 浏览器无 UDP 套接字
SSH 代理 不支持 浏览器无原始 TCP
串口代理 不支持 浏览器无串口访问
P2P/KCP 不支持 浏览器无 UDP
mDNS 发现 不支持 浏览器无组播
Docker 发现 不支持 浏览器无 Docker API
IPv6 P2P 不支持 浏览器限制
TAP/TUN 不支持 浏览器无虚拟网卡
本地 HTTP/gRPC 服务 N/A 使用插件弹窗界面替代

构建

npm install
npm run build

构建产物在 dist/ 目录。

安装到 Chrome

  1. 打开 Chrome,访问 chrome://extensions/
  2. 开启右上角"开发者模式"
  3. 点击"加载已解压的扩展程序"
  4. 选择 dist/ 目录

开发

npm run dev

启动 webpack watch 模式,修改代码后自动重新构建。修改后需到 chrome://extensions/ 点击刷新按钮。

配置

配置存储在 chrome.storage.local 中,格式与 gateway-go.yaml 一致:

{
  "gatewayuuid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "logconfig": { "enablestdout": true, "logfilepath": "" },
  "http_service_port": 34323,
  "loginwithtokenmap": {
    "<RunId>": "<JWT Token>"
  }
}

架构

popup (UI)  <--chrome.runtime.sendMessage-->  service-worker (核心逻辑)
                                                 |
                                                 |  WebSocket (TLS)
                                                 v
                                            IoTHub Server
                                                 |
                                            Yamux 多路复用
                                                 |
                                   ┌─────────────┼─────────────┐
                                   v             v             v
                              Ping/Pong     WS Proxy     NewService

协议兼容性

Chrome 扩展版通过 WebSocket 连接到服务器的 TLS 端口,使用与 gateway-go 完全一致的 Yamux 多路复用协议和 msgio 消息格式。

相关项目

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors