上篇介绍了客户端与服务端之间的通讯。这里介绍客户端与客户端之间的通迅(通过服务端中转)

  当客户端联接了上服务端,服务端会保存联接信息,并对当前用户进行管理。详见系列文章

  由于用户管理和TCP组件采用了乔接模式所以在初使化的时候稍微改动了一下。

 1基于ESFramewok的 客户端和客户端通迅        mTcpUserManager = new TcpUserManager();
 2基于ESFramewok的 客户端和客户端通迅            mTcpUserManager.Start();
 3基于ESFramewok的 客户端和客户端通迅            mTcpUserManager.TcpUserDisplayer=this.tcpUserDisplayer1;
 4基于ESFramewok的 客户端和客户端通迅        
 5基于ESFramewok的 客户端和客户端通迅//            mTcpUserManager.SomeOneConnected += new ESFramework.CbSimpleStr(mTcpUserManager_SomeOneConnected);
 6基于ESFramewok的 客户端和客户端通迅//            mTcpUserManager.SomeOneDisconnected += new CbForTcpUserDisconn(mTcpUserManager_SomeOneDisconnected);
 7基于ESFramewok的 客户端和客户端通迅
 8基于ESFramewok的 客户端和客户端通迅            mTcpUserManagerBridge = new TcpUserManagerBridge();
 9基于ESFramewok的 客户端和客户端通迅            mTcpUserManagerBridge.Tcp = mTcp;
10基于ESFramewok的 客户端和客户端通迅            mTcpUserManagerBridge.TcpUserManager = mTcpUserManager;
11基于ESFramewok的 客户端和客户端通迅            mTcpUserManagerBridge.ContractHelper = mContractHelper;
12基于ESFramewok的 客户端和客户端通迅            mTcpUserManagerBridge.BasicRequestDealer=new BasicRequestDealer();
13基于ESFramewok的 客户端和客户端通迅            mTcpUserManagerBridge.Initialize();
14基于ESFramewok的 客户端和客户端通迅
15基于ESFramewok的 客户端和客户端通迅            this.tcpUserDisplayer1.ServiceKeyNameMatcher = new ServiceKeyNameMatcher();

服务端增加了转发的功能 .

 1基于ESFramewok的 客户端和客户端通迅    if(msg.Header.DestUserID!="0000000000")
 2            }

 

 在服务端建了两个基本的组件,一个是处理登陆,一下是处理获取好友信息.它们必需注册到消息分派器处理工厂

1基于ESFramewok的 客户端和客户端通迅EsbRequestDealerFactory mEsbRequestDealerFactory = new EsbRequestDealerFactory();
2基于ESFramewok的 客户端和客户端通迅            mEsbRequestDealerFactory.ContractHelper = mContractHelper;
3基于ESFramewok的 客户端和客户端通迅            mEsbRequestDealerFactory.BasicRequestDealer=new BasicRequestDealer();
4基于ESFramewok的 客户端和客户端通迅            mEsbRequestDealerFactory.FriendRelationDealer=new FriendRelationDealer();

具体的组件中的代码比较多,有兴趣可以直接看代码.值得一提的是,在我把信息转换成二进制时我采用了二进制序列化.这也许并不好,其它的语言好象还不支持.net平台的序列化.有同事建义我用XML序列化,然后再转成二进制,也许这是个好办法,祝位可以自己思考吧.


  再说说客户端.客户端变化比较大,因为要和其它客户端交流,还有好友管理等。
思路是:
  1、首先输入用户名密码进行登陆,成功后打主UI
   当用户登陆成功后,我把一些可能用到的信息写到公共区.接收到信息后再把信息传给主UI.
  2、获取好友并显示。
   在主UI LOAD事件中完成.并且把好友添加到好友列表中
  3、双击其中的好友后,可对好友聊天。
  4、对接收到其它用户送过来的消息时,判断和其聊天的对话框是否已经存在,如果存在没有就让其显示,否则就新建一个并显示接收的信息。

 客户端代码比较多,但是又不是很难看懂,所以就不贴出来了.
 上一篇 https://files.cnblogs.com/mediar/im20060517.rar

相关文章:

  • 2022-02-15
  • 2022-12-23
  • 2021-09-23
  • 2021-10-08
  • 2021-09-21
  • 2022-12-23
  • 2021-04-26
猜你喜欢
  • 2021-10-16
  • 2022-12-23
  • 2021-12-20
  • 2021-06-19
  • 2022-12-23
相关资源
相似解决方案