gloox 分析2

MessageSession 保存了你要发送的到对方的JID,看作者写法JID最好写包含资源,这个对于多端登陆是非常有帮助。

对于我们使用来说透明一般在个人聊天会用到,你主动new MessageSession 然后调用send发送消息,一般这里都是chat个人聊天的类型。

你看源代码其实还是client->send发送消息,就是他connect 服务器的那个套接字来发送消息,注意你new之后一定要不delete 这个会话,他其实当你析构client的时候会释放这些会话链表。


因为 new MessageSession 构造函数时候调用了 registerMessageSession


   void ClientBase::registerMessageSession( MessageSession* session )

  {

    if( session )

      m_messageSessions.push_back( session );

  }

  

  已经添加到list里面去了。

  

  这个库写的非常好,但作者考虑多线程不是做的很完美。。但问题不大,对于重连实在没有完美的解决方案。

  

  我们开发时候一般都是 recv 在一个线程里面 (我connect 都是异步), client 肯定是在主线程创建,因为我们发送消息都需要调用这个消息,我们需要对这个进行调用。

  那么2个线程存在竞争,虽然可以做同步,但没法做的非常完美,很多细节需要考虑

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值