讨论IM软件企业知识—会谈session的概念,附连到IM软件层次图
? ? session通常當(dāng)今計算機(jī)領(lǐng)域,IM軟體session。老IM那里有兩個:第一個是邏輯層session參與者管理會議。新聞列表,會話類型等;有協(xié)議層session。主要代表client隨著server有一件事通道。
老IM軟件
client跟Server交互的每一類操作都是基于會話。比方client登錄,須要建立一個登錄的會話;client發(fā)消息。須要建立一個會話。以下舉例:
? ? client向Server發(fā)了一條消息,這條消息的發(fā)送就建立在會話之上。client須要以下幾個步驟。
? ? 1. 創(chuàng)建一個session ID=1。
? ? 2. 發(fā)第一條消息的sequence id=1,第二條消息sessionID仍是1,可是sequence ID=2以此類推。同一個聯(lián)系人建立的sessionID不變,sequenceID跟著消息的數(shù)量遞增。
? ? 3. 消息發(fā)送完畢后,關(guān)閉session。
? ? client發(fā)送完消息。須要Server的回執(zhí),所以sessionID+sequenceID組成唯一的標(biāo)識,能夠找到發(fā)送的這條消息。更新UI的顯示。
上面的場景就是所謂的【會話內(nèi)】消息,主要是發(fā)給在線聯(lián)系人,Server做了特殊處理,這種消息能夠非常高速的到達(dá)對方。
有了會話內(nèi)。就有【會話外】:會話外指的是:不須要建立會話,直接發(fā)送給對,Server會存儲下來等到對方下次上線再發(fā)送。
? ? 非常明顯,會話外的邏輯要比回話外的簡單得多!
現(xiàn)狀
? ? 現(xiàn)代的IM軟件應(yīng)該都是所謂的會話外了。沒有協(xié)議層的session的概念了,僅僅有邏輯層的session。
? ? 現(xiàn)代的協(xié)議更聰明了,每個消息都有一個messageID,這種話。
會話的概念就不存在了。client-server之間僅僅有一個socket網(wǎng)絡(luò)層面的會話了。
附一張IM軟件的層次圖
protocol.a它是一個速記,事實上,核心庫,負(fù)責(zé)分析和管理協(xié)議層。
版權(quán)聲明:本文博主原創(chuàng)文章,博客,未經(jīng)同意不得轉(zhuǎn)載。
轉(zhuǎn)載于:https://www.cnblogs.com/gcczhongduan/p/4885258.html
總結(jié)
以上是生活随笔為你收集整理的讨论IM软件企业知识—会谈session的概念,附连到IM软件层次图的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 理解盒子模型
- 下一篇: 九度OJ 1019:简单计算器 (基础题