前后端交互接口(三)

[复制链接]
发表于 2025-12-29 08:47:37 | 显示全部楼层 |阅读模式
前后端交互接口(三)

前言

前两集我们先做了前后端交互接口的约定以及浅浅的阅读了一些proto代码。那么这一集我们就来看看一些紧张的proto代码,之后把protobuffer给引入我们的项目当中!
gateway.proto

我们来看一眼我们的网关proto代码!!!
在看之前,我们先来相识一下什么叫做网关。
网关,网关,着实就是一个入口。它通常是运行在服务器上的一个独立的服务大概是历程。它可以大概继承来自客户端的哀求,然后根据相干设置以及业务的逻辑,将这些哀求转发到一个大概多个后端服务器当中,固然这些后端服务器可以是数据库,也可以是微服务。他重要起到一个路由的作用。
以是我们的客户端是不须要去关注这个服务器的架构是什么样的,这须要和我们的网关服务器举行通讯即可。
那么相识完网关的一个功能,我们就来看一眼我们的proto文件。
起首还是不能忘了我们的约法三章!同一利用POST发送哀求、利用HTTP、Websocket协议、body利用protobuffer举行序列化/反序列化。
  1. //通信接口统一采用POST请求实现,正文采用protobuf协议进行组织
  2. /*  
  3.     HTTP HEADER:
  4.     POST /service/xxxxx
  5.     Content-Type: application/x-protobuf
  6.     Content-Length: 123
  7.     xxxxxx
  8.     -------------------------------------------------------
  9.     HTTP/1.1 200 OK
  10.     Content-Type: application/x-protobuf
  11.     Content-Length: 123
  12.     xxxxxxxxxx
  13. */
复制代码
以上是我们客户端发送的哀求以及服务端返回的相应。
再来看看网关约定的HTTP哀求功能与接口路径关系
  1.     SERVICE HTTP PATH:
  2.     {
  3.         获取随机验证码                  /service/user/get_random_verify_code
  4.         获取短信验证码                  /service/user/get_phone_verify_code
  5.         用户名密码注册                  /service/user/username_register
  6.         用户名密码登录                  /service/user/username_login
  7.         手机号码注册                    /service/user/phone_register
  8.         手机号码登录                    /service/user/phone_login
  9.         获取个人信息                    /service/user/get_user_info
  10.         修改头像                        /service/user/set_avatar
  11.         修改昵称                        /service/user/set_nickname
  12.         修改签名                        /service/user/set_description
  13.         修改绑定手机                    /service/user/set_phone
  14.         获取好友列表                    /service/friend/get_friend_list
  15.         获取好友信息                    /service/friend/get_friend_info
  16.         发送好友申请                    /service/friend/add_friend_apply
  17.         好友申请处理                    /service/friend/add_friend_process
  18.         删除好友                        /service/friend/remove_friend
  19.         搜索用户                        /service/friend/search_friend
  20.         获取指定用户的消息会话列表       /service/friend/get_chat_session_list
  21.         创建消息会话                    /service/friend/create_chat_session
  22.         获取消息会话成员列表             /service/friend/get_chat_session_member
  23.         获取待处理好友申请事件列表       /service/friend/get_pending_friend_events
  24.         获取历史消息/离线消息列表        /service/message_storage/get_history
  25.         获取最近N条消息列表             /service/message_storage/get_recent
  26.         搜索历史消息                    /service/message_storage/search_history
  27.         
  28.         发送消息                        /service/message_transmit/new_message
  29.         获取单个文件数据                /service/file/get_single_file
  30.         获取多个文件数据                /service/file/get_multi_file
  31.         发送单个文件                    /service/file/put_single_file
  32.         发送多个文件                    /service/file/put_multi_file
  33.         语音转文字                     /service/speech/recognition
  34.     }
复制代码
哦对,固然说我们的Websocket是服务端自动给客户端举行推送消息,但是你一开始不创建毗连怎么推送?你客户端有了之后,服务端又不能直接知道你客户端的相干信息。以是有了以下内容。
  1. /*
  2.     消息推送使用websocket长连接进行
  3.     websocket长连接转换请求:ws://host:ip/ws
  4.     长连建立以后,需要客户端给服务器发送一个身份验证信息
  5. */
  6. message ClientAuthenticationReq {
  7.     string request_id = 1;
  8.     string session_id = 2;
  9. }
复制代码
这里的session_id是我们的登录回话id,牢记不是我们的谈天会话id,不要搞混了。
引入Protobuf

第一步,点击进入CMakeLists.txt的文件当中

第二步,修改cmake的最小依赖版本为3.16

第三步,在这个末了加上Protobuf

第四步,将proto文件放入项目当中

第五步,继承在CMakeLists.txt的文件当中添加下面的两行代码


第六步,点击项目,点击构建,再点击当前设置,加入protobuffer的路径(记得用vcpkg下载)

之后就可以看到我们的项目中添加了proto的文件了。

那么这一集就先到这里。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!qidao123.com:ToB企服之家,中国第一个企服评测及软件市场,开放入驻,技术点评得现金

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表