zoukankan      html  css  js  c++  java
  • 飞信聊天记录相关类

     核心类:Core.History.DbHistoryManager 

    Class:Core.Player

    类似结构体(只有属性,没有方法),它建立了关于Uri,nickname,用户类型之间的关系,应该是历史记录使用的一个轻量级用户表示类吧)—如果这里也用Contact确实有点过了.注意:类有一个静态实例,Player.System(表明系统用户

    Interface: IMessage

    消息的接口定义:七个属性,分别是消息体,扩展信息(好像只有添加好友才用到),消息ID,接收者(是一个player集合,fetion支持群发),发送者,日期,消息类型.不长,干脆直接考出来好了.

    public interface IMessage
    {
        
    // Properties
        string Body getset; }
        
    string Extend getset; }
        
    string ID getset; }
        PlayerCollection Receivers 
    get; }//注意,这个不能set,也就是初始化后不能改动
        Player Sender getset; }
        DateTime Time 
    getset; }
        MessageType Type 
    getset; }
    }


    从这个接口可以看出,实现接口的也应该是结构体类型的类.它有3个实现.

    Core.ContactHistoryMessage

    关于好友列表改变的消息类型,看了发现Fetion貌似对这个实现管的很严,都是interal类型的函数.貌似这个消息类型根本没有用到呢…. 

    Core.InstantMessage

    即时消息类.(主要需要查看的

    Core.SystemMessage

    系统消息类,增加了一个 private MessageStatus _readok; 表示消息是否发送成功 private string _link;含义还不大清楚

    DbHelper

    因为Fetion是把Dat文件当成一个数据库来管理的,因而需要使用SQL查询.

    1.       这是一个internal class,因而只有Imps.Client.Core包内可以访问.2

    2. 
    
     public bool InitializeDatabase(string currentUserSid)
     只是对数据库,定位到对应的目录和Histroy.dat文件,并建立数据库连接,值得注意的是,
                       
    
    this._password = currentUserSid;
    string connectionString = string.Format("Data Source={0};Password={1}"this._ dataSource, this._password);
    QQ一样,使用用户Id加密聊天记录.
    DbHistoryManager(User currentUser){
        
    this._currentUser = currentUser;  //设置user    
        this._currentPlayer = new Player(currentUser.Uri.Raw, currentUser.Nickname, PlayerType.User); //建立player       
        this.InitializeDatabase(); //初始化数据库.
    }

    在初始化数据库中最后会启用一个线程 MigationMessageHistory() 来迁移导入06版本的数据.(寒一个,migration才对吧,居然拼写错了…) 

    初始化需要User.

    在不调迁移线程的情况下,使用到User的数据量是很小的.

    1.       User.Sid(必要的值,是用户文件夹名和数据库加密密码)

    2.       User.Uri(Player初始化要用到)

    3.       User.NickName(同样,player初始化时候要用到

    然后貌似就调用LoadMessages() 就可以了.

  • 相关阅读:
    腾讯优测优分享 | Android适配中的一些特殊情况小结
    腾讯优测优分享 | 你是否体验过Android手机插入耳机后仍外放的尴尬?
    腾讯优测优分享 | 让你头疼的手机应用自动遍历可以这样实现
    腾讯优测优分享 | 适配路上,避免掉入“扫码调用相机”的坑
    腾讯优测优分享 | 游戏的UI自动化测试可以这样开展
    腾讯优测优分享 | 这样做测试用例评审更高效
    腾讯优测优分享 | Android性能测试工具化实现
    腾讯优测优分享 | 分布式系统测试的应用方法——场景注入测试
    腾讯优测优分享 | Android碎片化问题小结——关于闪光灯的那些事儿
    腾讯优测优分享 | 谈谈移动端屏幕适配的几种方法
  • 原文地址:https://www.cnblogs.com/imparser/p/1161295.html
Copyright © 2011-2022 走看看