日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

飞信聊天记录相关类

發布時間:2025/7/14 编程问答 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 飞信聊天记录相关类 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
核心類:Core.History.DbHistoryManager?

Class:Core.Player

類似結構體(只有屬性,沒有方法),它建立了關于Uri,nickname,用戶類型之間的關系,應該是歷史記錄使用的一個輕量級用戶表示類吧)—如果這里也用Contact確實有點過了.注意:類有一個靜態實例,Player.System(表明系統用戶)?

Interface: IMessage

消息的接口定義:七個屬性,分別是消息體,擴展信息(好像只有添加好友才用到),消息ID,接收者(是一個player集合,fetion支持群發),發送者,日期,消息類型.不長,干脆直接考出來好了.

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


從這個接口可以看出,實現接口的也應該是結構體類型的類.它有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() 就可以了.

轉載于:https://www.cnblogs.com/imparser/archive/2008/04/19/1161295.html

總結

以上是生活随笔為你收集整理的飞信聊天记录相关类的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。