基于muduo的集群服务器开发之服务端与客户端通信协议规定

1.协议介绍与讲解

 协议是很重要的,规定好协议,客户端和服务端可以同时开发了,也可以自己根据协议进行测试,所以规定协议很重要

首先,业务有以下几种

enum EnMsgType
{
    LOGIN_MSG = 1, // 登录消息
    LOGIN_MSG_ACK, // 登录响应消息
    LOGINOUT_MSG, // 注销消息
    REG_MSG, // 注册消息
    REG_MSG_ACK, // 注册响应消息
    ONE_CHAT_MSG, // 聊天消息
    ADD_FRIEND_MSG, // 添加好友消息

    CREATE_GROUP_MSG, // 创建群组
    ADD_GROUP_MSG, // 加入群组
    GROUP_CHAT_MSG, // 群聊天
};

通信格式

服务器和客户端的通信采用了JSON来完成数据在网络中的标准传输。
对于不同的数据则是采用了不同的格式,具体如下:

1.登录格式
json["msgid"] = LOGIN_MSG;   //业务id 下面的msgid也都是业务id
json["id"]            //用户id
json["password"]    //密码

2.登录响应
json["msgid"] = LOGIN_MSG_ACK;
json["id"]            //登录用户id
json["name"]        //登录用户密码
json["offlinemsg"]    //离线消息
json["friends"]        //好友信息,里面有id、name、state三个字段
json["groups"]        //群组信息,里面有id,groupname,groupdesc,users三个字段
                    //users里面则有id,name,state,role四个字段
json["errno"]        //错误字段,成功登录设置为0,错误时被设置成1,用户不在线设置成2
json["errmsg"]        //错误信息

3.注册
json["msgid"] = REG_MSG;
json["name"]        //用户姓名
json["password"]    //用户姓名

4.注册响应
json["msgid"] = REG_MSG_ACK;
json["id"]            //给用户返回他的id号
json["errno"]        //错误信息,失败会被设置为1

5.加好友
json["msgid"] = ADD_FRIEND_MSG;
json["id"]            //当前用户id
json["friendid"]    //要加的好友的id

6.一对一聊天
json["msgid"] = ONE_CHAT_MSG;
json["id"]            //发送者id
json["name"]        //发送者姓名
json["to"]            //接受者id
json["msg"]            //消息内容
json["time"]        //发送时间

7.创建群
json["msgid"] = CREATE_GROUP_MSG;
json["id"]            //群创建者id
json["groupname"]    //群名
json["groupdesc"]    //群描述

8.加入群
json["msgid"] = ADD_GROUP_MSG;
json["id"]            //用户id
json["groupid"]        //群id

9.群聊
json["msgid"] = GROUP_CHAT_MSG;
json["id"]            //发送者id
json["name"]        //发送者姓名
json["groupid"]        //发送者姓名
json["msg"]            //消息内容
json["time"]        //发送时间

10.注销
json["msgid"] = LOGINOUT_MSG;
json["id"]            //要注销的id
 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值