问题:
目前在项目中采用 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 对象。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.