ASP.NET SignalR 與LayIM配合,輕鬆實現網站客服聊天室(六)之 好友申請、同意、拒絕

丶Pz發表於2016-05-05

  不知道距離上一篇多久沒有寫了,可能是因為忙(lan)的關係吧。廢話不多說,今天要介紹的不算什麼新知識,主要是邏輯上的一些東西。什麼邏輯呢,加好友,傳送好友申請,對方審批通過,拒絕。(很遺憾,對方審批通過和拒絕後的通知沒做,看完本部落格的小夥伴有興趣的可以嘗試一下)。

  抽空寫了新版本的聊天室,內容和上次差不多,這次加上了資料庫來處理一些邏輯,包括登入註冊功能,OK,現在開始。

  1. 好友申請

  新版本中做了一個預設分組:註冊使用者 的功能,即所有註冊進來的人都會存在於該組中,該組和普通群組一樣,可以群聊,也可以單獨找人聊,新增好友的目的就是為了在茫茫人海中找到TA。O(∩_∩)O,先上一個圖:

 

  我當前的使用者是zhangsan,點選一下GD,可以看到如下視窗:

  我們就從這一步開始吧。首先,當前使用者和要聊天的使用者建立連線之後,在後臺檢查是否是好友並且是否存在好友申請記錄(後續會提到 ),邏輯很簡單,建立一個好友表,查一下,有沒有好友關係即可,我們具體看一下,客戶端連線成功之後,返回的json是什麼:

  解釋一下,每個欄位的含義。

gid 聊天室唯一id
history 聊天曆史記錄集合
isfriend 是否是好友,handle,申請處理結果
rid 對方id
sid 本人id
type one代表單聊  group代表群組

 

 

 

 

 

 

 

 

  可以看到isfriend中的friend為0,那麼就會彈出“還不是好友,是否新增對方為好友”的提示。如果isfriend中的handle(0代表對方申請成為好友,1代表對方同意,2代表對方拒絕),當你點選傳送的時候會彈出如下框,新增備註,並且傳送成功之後,提示文字會更改:

  2.好友審批

  好友申請已經完成了,我們換成GD使用者登入,點選鐘表圖示,會看到如下效果:

  點選頭像,彈出對話方塊:

  點選是,加為好友,否,拒絕新增好友。拒絕我就不演示了。點選是之後呢,再看看我們的好友列表是不是多了一個好友呢,而且預設分組就是我的好友哦。

  在換回zhangsan使用者,看看吧

  PS:雖然不加好友也能聊天。但畢竟多了一層好友關係嘛。其實這個web聊天室可以把很多QQ的功能模仿出來。這次就先介紹加好友吧。(至於為什麼拿GD做示範。。。大概是腦子抽了吧。)

  總結:本期簡單介紹了加好友的邏輯流程.也作為此係列的終結篇。抽空研究一下,許可權驗證等其他高階功能。為大家奉獻出來,希望大家喜歡,本期就到這裡啦。( ^_^ )/~~拜拜

  程式碼地址:https://github.com/fanpan26/LayIM_SignalR_Chat

相關文章