连接方式
连接方式
局域网直连
手表与 ClassIsland 电脑位于同一网络时,可以直接连接插件提供的 WebSocket 服务。
- 默认端口:
8765。 - 优点:延迟低,即使公网服务不可用也能工作。
- 限制:校园网络可能启用客户端隔离,手表和电脑即使连接同一 Wi-Fi 也无法互访。
局域网认证不发送密码或云端访问令牌。登录后,服务端会向插件同步设备会话派生的验证器;连接时插件下发一次性挑战,手表用验证器计算 HMAC 证明。挑战 30 秒过期且先消费后校验,失败和成功请求都不能重放。
请在 Windows 防火墙中只为受信任的专用网络放行所需端口,不要直接向公网暴露插件端口。
云端中转
插件和手表分别连接 RemoteCI 服务端,由服务端中转状态、课表和操作。
- 默认服务端端口:
8080。 - 适合跨 Wi-Fi、蜂窝网络和异地访问。
- 公网使用必须配置 HTTPS,WebSocket 会随之使用 WSS。
服务端是账号与权限的唯一真源,插件和手表的授权信息都来自服务端同步,权限变更后不需要重新配对。
自动选择
插件每次连上服务端都会重新发现本机可用的非回环单播 IP,并把全部候选地址、当前局域网端口和服务启用状态发送给服务端。服务端将最近一次结果实时转发并缓存给随后上线的手表;手表更新本机局域网设置后依次尝试这些地址,成功地址会保存为下次首选。
首次登录也可以反向引导:手表在登录页点击“扫描局域网设备”,通过固定的 UDP 48765 发现启用了局域网服务的 RemoteCI 插件。扫描广播只返回电脑名称和插件 WebSocket 端口;用户选中电脑后,手表才连接插件的 /bootstrap 路径读取云服务器地址,同时把 UDP 响应的真实来源 IP 保存为插件地址。插件配置为 localhost 或回环地址时,手表会将其替换为刚选中的电脑 IP。
局域网引导不会把账号密码发给插件。手表先显示插件返回的云服务器地址,用户确认后点击“安全登录”,密码只提交给该云服务器;服务端完成鉴权并把新设备会话同步给插件后,手表直接使用该会话建立局域网 HMAC 连接。局域网连接成功时不会再建立云端 WebSocket,因此服务端无需重复下发局域网地址;若直连失败,仍会按设置回退云端并接收服务端的最新地址。
手表启用两种连接后会先尝试局域网,再回退到云端。首次密码登录需要先经云端完成认证和地址发现,收到插件网络信息后会自动切换到局域网;已保存设备会话的后续连接会直接优先尝试上次成功地址。局域网地址为空、连接失败或登录失败时,才会继续尝试云端。
手表“设置 → 连接”仍允许手动修改电脑 IP 和端口,适合自动发现不可用或需要指定网卡时使用。插件端口修改后,需要重启 ClassIsland 使监听端口生效;插件重新连接云端后会把新端口同步到手表。
云端中转和局域网直连都是默认开启的连接能力。手表普通连接页不再显示这两个开关,仅在“设置 → 开发者”中允许关闭;插件的云端和局域网服务开关也只在“RemoteCI 开发者设置”显示,普通设置页仅保留地址、端口与配对信息。手表的密码登录始终允许一次云端认证,不受该开发者偏好限制;认证成功后的自动重连才遵循是否允许云端回退的设置。
插件保存的授权镜像超过 24 小时未更新时,局域网直连仍可查看课程,但有效权限会收缩为只读当前课程,管理命令会被拒绝。
地址示例
| 场景 | 地址 |
|---|---|
| 插件与本机服务端 | http://localhost:8080 |
| Android 模拟器访问电脑 | http://10.0.2.2:8080 |
| 局域网真机访问 NAS | http://192.168.1.20:8080 |
| 公网正式环境 | https://remoteci.example.com |