从零接入 webrpc:按这份最小清单跑通双端,再写业务

我是 webrpc 作者。SDK、Token 和开发文档在 https://webrpc.cn。

选型看完了,下一步往往卡在同一处:我该按什么顺序写第一行代码?

Go、Python、Rust、Android 各有示例,但最小路径其实一样。这篇不堆完整工程,只给你一份 跨语言都适用的最小可行清单 :两枚 Token、两端登录、接好本机回调、OpenSession 成功、对端回调里看到一小包 SendData。这四件事通了,再叠 JSON、文件或网盘;不通就不要先改业务字符串。

webrpc 是面向无公网 IP 的跨平台 P2P 通信 SDK:Token 标识设备,登录后建加密会话,再用 SendData / SendFile 收发。官网:https://webrpc.cn。

不想写代码、只想先体验传文件或个人网盘:用 File2File 一键注册,或再加 mywebdisk。下面清单面向 自己链 SDK 的人。

开始前准备什么

  1. 打开 webrpc.cn 控制台,准备 两枚 Token 及各自密码(个人试用常见一次两枚,名额与有效期以控制台为准)。
  2. 明确角色:
    • 设备 A:被连端(家里电脑 / NAS / Agent)用 Token A
    • 设备 B:主动拨号端(笔记本 / 手机 Client)用 Token B
  3. 下载 当前系统 + CPU 架构 对应的动态库(macOS / Windows / Linux amd64 / Linux arm64 等不要混)。
  4. 约定一条 认证口令(permission) :A 在 New 时设定;B 在 OpenSession 时原样带上。空口令表示知道 Token 就能尝试连,长期在线设备建议用随机串。口令与 Token 密码不是一回事。

两台设备都要能访问互联网以完成握手;不要求公网 IP。验证阶段两边进程都开着。

最小清单(按顺序做)

第 1 步:两端创建客户端并登录

text 复制代码
handle = WebrpcClient_New(token, passwd, permission)
轮询 WebrpcClient_LoginStatus(handle) 直到成功(务必加超时)
  • 登录成功只表示 本机 SDK 就绪,还没有和对端的会话。
  • 登录成功前不要 OpenSession / SendData。
  • 不要死循环空等;失败就查 Token、密码、库架构、本机外网。

第 2 步:接本机回调端口

text 复制代码
port = WebrpcClient_GetReceivePort(handle)
connect 127.0.0.1:port
循环读二进制帧

对端送来的数据,以本机 TCP 帧进入你的进程,不是 SDK 调你的函数指针。只连回环,不要连局域网 IP。

帧头约定(与开发文档一致):

text 复制代码
sessionId : uint32 大端
type      : uint8
  2 = 数据流
  1 = 文件流

先把读循环跑稳,能打印 sessionId 和 type 再解析业务。

第 3 步:B 对 A 打开会话

在 B 上(A 已登录且回调在跑):

text 复制代码
sessionId = WebrpcClient_OpenSession(handleB, TokenA, permissionA)
  • 成功:得到 非 0 的 sessionId。
  • 失败:返回 0。先查 A 是否在线、Token 是否填反、口令是否一致、网络是否允许握手。握手不能保证任意网络一次成功;把返回 0 写成正常分支,间隔重试。

第 4 步:发一小包,确认 A 的回调读到

在 B 上对刚才的 sessionId 调一次 SendData,载荷任意短字符串即可,例如 ping。timeOutMs 验证阶段可用 3000~5000:返回 1 通常表示已到对端业务回调。

在 A 的读循环里应看到对应数据流帧。看到了,最小路径就算通了。

第 5 步:再叠你自己的东西

连通之后才加:

  • JSON / Protobuf 业务 RPC
  • SendFile 传文件(大文件走文件接口,不要一次巨包 SendData)
  • 网盘、预览、远控等产品逻辑

语言相关细节(ctypes 声明、CGO 链接、Android jniLibs)看控制台各语言示例;最小清单本身与语言无关。

怎样算最小跑通

四条同时满足:

  1. A、B 的 LoginStatus 均为成功
  2. 两端回调读循环都在跑(127.0.0.1)
  3. OpenSession 得到非 0 的 sessionId
  4. B 的一次短 SendData,A 的回调能打印出内容

差一条,先补这一条,不要同时改协议字段和动态库路径。

清单上的常见坑

现象 先查
登录一直失败 Token / 密码、库是否对应当前平台、本机能否访问外网
有登录、无数据 回调是否连 127.0.0.1、端口是否来自 GetReceivePort
OpenSession 为 0 对端是否在线、Token 是否填反、口令是否一致、网络与重试
偶发连上又怪 弱网下把失败当分支;必要时重新 OpenSession,勿死抱旧会话
Python 返回值离谱 argtypes / restype 是否按 uintptr、uint32 声明

口令、超时乱序、三层通道(局域网 / P2P / 中转)等,连通之后再按需深入;第一天目标只是 双端跑通一小包。

不想写 SDK 时

  • 传文件、聊天、远控:装 File2File,一键注册领 Token。
  • 个人网盘:家里跑 mywebdisk-server,出门用 File2File 连。

通道仍是 webrpc;清单里的「登录 → 会话 → 收发」由客户端替你点完。

对照速查

最少需要几枚 Token?

双端验证要两枚:一枚 A,一枚 B。

必须有公网 IP 吗?

不需要。两端能上网以完成握手即可。

第一天要不要上 SendFile?

不必。先 SendData 一小包证明回调与会话;文件下一步再说。

回调为什么不是函数注入?

本机 TCP 推帧,便于多语言同一套读逻辑。只连 127.0.0.1。

OpenSession 返回 0 是 SDK 坏了吗?

多半是对端、Token、口令或网络。按层排查,保留重试。

控制台下载 SDK、管理 Token、查看套餐:https://webrpc.cn。按清单顺序勾完七步,少走很多冤枉路。

相关推荐
less_121388 小时前
鸿蒙 WPS Open SDK 二开复盘:从注册、打开到回传的完整能力链
服务器·sdk·harmonyos·wps·鸿蒙开发
玩AI的奶茶3 天前
GPU 算力租赁平台横向对比:六家主流平台,24GB 档价差 85%
服务器·人工智能·gpu算力·token·算力租赁
业余程序员plus4 天前
RDMA-Verbs-GPU 内存与 DMA-BUF(十一)
p2p·amdgpu·dma-buf·rocm·kfd·hipmalloc·amdgpu_bo
承渊政道4 天前
启元Q1机器人SDK实操:跑通触摸消息,用ROS 2图形界面完成调试与模型展示
机器人·sdk·具身智能·应用开发·ros 2·启元q1
江屿风5 天前
【Plain Language Large Model】【大语言模型底层原理全解析:从Token生成到智能体演进】流食般投喂
人工智能·笔记·语言模型·llm·json·token·聊天模板
体验家5 天前
智能家居SDK反馈收集:体验家如何打通App与设备使用体验
智能家居·sdk·客户反馈
鸽芷咕6 天前
从环境搭建到敬礼动作:启元 Q1 SDK 全流程实战与 8 个实测坑排查手册
数据库·ai·机器人·sdk·启元q1
摘星编程6 天前
启元 T1 机器人 SDK 探秘:安装配置、六种变形动作与双机型共存实测
sdk·教程·四足机器人·atomgit·启元
小此方6 天前
Linux网络(二十九):从内网穿透到P2P打洞:NAT转换、代理机制与局域网通信的底层全景解析
linux·网络·p2p
星野云联AIoT技术洞察7 天前
ESP32 接入 Meta Muse:Gadget SDK 能做什么,为什么不能直接做商业设备
esp32·agent·token·边缘ai·meta muse·mcu选型