我的简单通信协议

   写了个自己的通信协议 功能很简单 可能还不能称作协议  称为通信地基还好些 不过写个指导的东西还是很好的 有了目标就不会迷失了嘛 呵呵

                                       基于xmpp的简单通信协议
能够实现的功能:用户登录 注册 上下线消息通知 一对一聊天 群聊  代码在实现中...


一.服务器和客户机之间消息发送格式:采用xmpp格式

 

1.从客户机发送服务器的消息
 

(1). 登录请求消息<msg><type>login</type><name>a</name><pwd>b</pwd></msg>
 

(2).注册请求消息<msg><type>regist</type><name>a</name><pwd>b</pwb></msg>
 

(3).与某个在线用户对话的消息  me代表发送人 chatmsg发送的消息 to接受人    <msg><type>chattoone</type><name>me</name><content>chatmsg</content><name>to</name></msg>
 

(4).与全部在线用户对话的消息    <msg><type>chattoall</type><name>me</name><content>chatmsg</content></msg>
 

(5).下线提示消息<msg><type>out</type><name>client</name></msg>
 

(6).用户对话窗口已打开消息<msg><type>windowopen</type><name>client</name></msg>  

 

2.从服务器发给客户机的消息   
 

(1).登录应答消息<msg><type>loginre</type><name>client</name><access>suc</access></msg>
 

(2).注册应答消息<msg><type>registre</type><name>client</name><access>suc</access></msg>
 

(3).转发消息<msg><type>otherclient</type><name>client</name><content>chatmsg</content></msg>
 

(4).在线用户列表消息<msg><type>clientlist<type><list>al</list></msg>
 

(5).用户上线消息<msg><type>loginon</type><name>client</name></msg>
 

(6).用户下线消息<msg><type>out</type><name>client</name></msg>

 

二.服务器和客户机之间通信的规则
 

1.用户登录过程:
        用户向服务器发送登录请求消息 并堵塞在接受应答消息上 服务器验证用户信息并且发送登录应答消
息 用户接受到消息 1.如果登录成功 服务器将这个用户添加到在线用户队列中 客户机则打开对话窗口  并且发送一条用户对话窗口已打开的消息给服务器  服务器收到这条消息后 将在线用户列表消息发送给客户端 客户端接收到信息后 将列表消息显示在显示框中 2. 如果登录失败 客户机显示消息提示框 将原有链接断开 新建一个链接 显示登录界面 重新执行登录

 

2.用户注册过程:
      用户向服务器发送注册请求信息  服务器接收到后查看用户名是否重复 如果重复 服务器发送一条注册失
败消息给用户 用户收到注册失败消息后 显示失败消息 如果注册成功 服务器发送一条成功消息给用户 并且在合法用户队列中添加新注册的用户 用户收到成功的消息 后打开登录界面 执行登录
  
3.用户上线提示:
      用户登录成功后 服务器将新用户上线信息发给其他在线信息 并且更新其他用户的在线用户列表

 

4.用户下线提示:
         用户发送下线消息给服务器 服务器将在线用户队列中的相关项去除 服务器给其他在线用户发送用户下线
消息 和在线用户列表消息   
  
5.一对一聊天过程:
       用户a发送与某个在线用户b对话的消息给服务器 服务器查看该用户b是否在线 如果不在线 服务器向用户
a发送用户b下线的消息 如果在线 服务器发送转发消息给用户b 反过来过程一样 
  

6.群聊过程:
      用户a发送与全部在线用户对话的消息给服务器 服务器取得在线用户列表 将转发消息发送给除a用户的其
他在线用户  
  

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值