NettyChat

作者: lingnanlu | 来源:发表于2016-09-17 20:23 被阅读46次

    命令设计以及格式

    | comType | id (用来标记命令) |

    表示命令类型, 剩下的不同命令格式不同

    CREATE_ACCOUNT

    格式: | username | password |

    操作: USER中添加一条目

    CHANGE_PASSWORD

    | username | oldpassword | newpassword |

    LOGIN

    格式: | username | password |

    操作: 判断ChannelInfo中的UserInfo是否为null, 如果不是null则已登录, 如果是null, 则从数据库查询出User信息, 然后为ChannelInfo中的UserInfo赋值

    LOGOUT

    操作: 与LOGIN相反

    EXIT

    ADD_CONTACT_INVITE 添加好友请求

    格式: | username | contactName |

    操作:

    1. 先判断被邀请者是否存在
    2. 再判断被邀请者是否已经是好友
    3. 如果不是好友 , 向CONTACTS表写一条记录
    4. 如果被邀请者现在已登录, 则向将发送AddContactInviteCmd

    ADD_CONTACT_RESPONSE

    格式: | username | contactName | isAccepted |

    操作: 当收到其它用户的好友请求时, 可以利用该命令接收请求

    1. 判断Contact表中是否有一个PENDING requets

    REMOVE_CONTACT

    | contactName |

    GET_CONTACT_OF_USERS 该命令是什么含义

    | contactState |

    GET_CONTACT_OF_USERS_RESPONSE

    | usernames |

    MESSAGE

    | senderName | recipientName | message |

    GET_PENGDING_MESSAGES

    GET_PENGDING_MESSAGES_RESPONSE

    | senders | messages |

    SHUTDOWN_SERVER

    OK

    ERROR

    | error_code | description |

    保活机制

    利用的IdleStateHandler, 在handler加入pipeline时, 往TaskQueue中添加相应的任务来触发相关的WriteIdle或ReadIdle Event,该Event也是由用户自己来处理

    相关文章

      网友评论

          本文标题:NettyChat

          本文链接:https://www.haomeiwen.com/subject/worwettx.html