惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
U
Unit 42
IT之家
IT之家
Y
Y Combinator Blog
T
Tailwind CSS Blog
B
Blog
大猫的无限游戏
大猫的无限游戏
博客园 - 叶小钗
Jina AI
Jina AI
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
I
InfoQ
J
Java Code Geeks
F
Fortinet All Blogs
T
The Blog of Author Tim Ferriss
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
H
Hackread – Cybersecurity News, Data Breaches, AI and More
人人都是产品经理
人人都是产品经理
腾讯CDC
Hugging Face - Blog
Hugging Face - Blog
GbyAI
GbyAI
博客园 - 司徒正美
The GitHub Blog
The GitHub Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
L
LangChain Blog

Web Dev

没想到 2026 年,还要浪费大量时间在跨域问题上 关于 webview 移动应用开发的一些疑惑,求解答 浏览器访问一个域名不通的情况下,如何让这个域名再次发起 dns 请求 用 socks5 代理无法返回正常网页内容 Datastar 未来有机会代替 React 吗? nb 了, chrome mobile 文件上传还存在问题啊,不能同时允许多种 accept ,页面会触发刷新 请教下大佬们有无移动端 app 上 h5 页面休眠/内存优化思路 想问问现在大家工作/业务上都用上 http3 了吗? 如何截断 http 请求 v2 的新回复展示 是如何推送的? 有没一种可以将 http/socks 代理转 http 协议的东西? 关于 Https 证书验证问题 想找静态网页托管服务,无需域名 如何拼凑不同网页的不同部分到一个网页 特别快速开发网页程序的方法? shopify 怎么切换 identity provider 还有人在使用 ASP 吗? 看到一个项目, H5 页面使用 ip 部署,确定没有 ssl,为啥从微信打开还是能调用摄像头? 求推荐开源的工业领域电商项目 纯编程小白,用 ds 做了个网站碰到阿里云部署问题,寻求耐心指导 请问一下,各位是使用哪些统计平台呢?使用 uniapp 开发的 APP,相对用户进行记录与统计。 API 请求体字段定义询问各位大佬。 网络请求 ERR_CONNECTION_ABORTED,问题求助 什么样的网站算设计精良的 应不应该把主键 id 暴露在 url 上? 前端项目部署到服务器,怎么调通访问服务器上的内网 IP 接口 本地开发用什么域名? c++ go rust 谁更适合开发 嵌入式 Linux 上的 web 后台服务 求知 大佬们 一定帮我解答下 感谢 Fastapi 框架中的模板引擎 jinja2 是否已过时,或者说是否还建议使用 推荐一个 web 开发小工具,检测页面是否可以 iframe, 网址 https://iframetester.dev/
请教: WebSocket + Protobuf 做服务,如何定义路由
uiosun · 2024-05-19 · via Web Dev

问题:

目前在项目中采用 WebSocket 长连接做服务,Protobuf 作为请求/响应的数据结构。

当存在多个路由时,如何定义它们呢?

举个例子:聊天室

接口 1:(按条件)筛选聊天内容 接口 2:发送消息

请教各位,长连接服务在这种场景,如何与客户端通讯(怎么定义路由,或者如果不定义,有什么其他办法吗?)

谢谢各位!


背景:我对于 Protobuf 、长连接的使用经验比较匮乏,之前只做过 HTTP/RPC + Protobuf 的项目。

我的思路历程:

最简单的就是 Protobuf 封装一个标准路由结构:

message IRoute {
  string key = 1;
  string jsonRes = 2;
}

key 做路由键,jsonRes 就是 JSON 字符串,只有响应时才返回纯 Protobuf 对象,但这就买椟还珠了吧?(不如直接用 JSON )

后面又想定义 Interface 来设计,先将数据转化为标准对象,然后判断 key 来将数据转化为实际路由,但对二进制数据,我做不到只转化部分内容……

最后,目前打算使用 text 作为路由,自己手动分割,然后响应时返回 Protobuf 对象。