真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

開源im系統(tǒng)go語言 go語言 開源項目

go語言是什么

Go語言是一種開源的編程語言,被廣泛應(yīng)用于網(wǎng)絡(luò)編程、云計算、分布式系統(tǒng)等領(lǐng)域。

十載的順河網(wǎng)站建設(shè)經(jīng)驗,針對設(shè)計、前端、開發(fā)、售后、文案、推廣等六對一服務(wù),響應(yīng)快,48小時及時工作處理。成都營銷網(wǎng)站建設(shè)的優(yōu)勢是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動調(diào)整順河建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計,從而大程度地提升瀏覽體驗。創(chuàng)新互聯(lián)從事“順河網(wǎng)站設(shè)計”,“順河網(wǎng)站推廣”以來,每個客戶項目都認(rèn)真落實執(zhí)行。

go語言的三位作者

Go語言的設(shè)計目標(biāo)是成為一種語法簡潔、執(zhí)行效率高、并發(fā)性能強(qiáng)大的編程語言。它由Google公司研發(fā),于2009年首次發(fā)布,并于2012年成為了開源項目。Go語言具有C語言的表達(dá)能力和Python的開發(fā)效率,同時還擁有自己獨(dú)特的語法和特性,如協(xié)程、垃圾回收機(jī)制等。因此,它被廣泛應(yīng)用于網(wǎng)絡(luò)編程、云計算、分布式系統(tǒng)等領(lǐng)域,并且越來越受到開發(fā)者的青睞。

Go語言的出現(xiàn),填補(bǔ)了許多編程語言在并發(fā)編程方面的空缺。它提供了一種輕量級線程模型,通過協(xié)程(goroutine)的方式,實現(xiàn)了高效的并發(fā)編程。同時,Go語言還支持內(nèi)置的網(wǎng)絡(luò)編程和字節(jié)序列編解碼庫,使得網(wǎng)絡(luò)編程變得更加容易和高效。在云計算、分布式系統(tǒng)等領(lǐng)域,Go語言也得到了廣泛的應(yīng)用。例如,Docker和Kubernetes等開源項目就是用Go語言開發(fā)的。此外,Go語言還具有代碼可讀性高、編譯速度快、編譯后的可執(zhí)行文件體積小等優(yōu)點(diǎn),使得它成為了開發(fā)高性能、高并發(fā)應(yīng)用的理想語言之一。

golang+vue3開發(fā)的一個im應(yīng)用

這是一個開源的前后端分離的IM網(wǎng)頁應(yīng)用。

服務(wù)端:

web端:

補(bǔ)齊短板-開源IM項目OpenIM關(guān)于初始化/登錄/好友接口文檔介紹

OpenIM文檔方面的建設(shè)一直遠(yuǎn)遠(yuǎn)落后于開發(fā), 也經(jīng)常被開發(fā)者詬病,在接下來一周的時間里,我們重點(diǎn)補(bǔ)齊文檔,讓開發(fā)者更輕松接入。由于app sdk底層都是go來實現(xiàn),所以本文先寫一個模板和框架,在接下來的時間里,會有iOS、Android、Flutter、Uniapp、jssdk同事補(bǔ)充具體的細(xì)節(jié),并更新到官網(wǎng)

![0](C:\Users\Administrator\Desktop\OpenIM\官網(wǎng)相關(guān)\技術(shù)文章\6-25\0.png)

## 初始化及登錄

初始化并登錄成功回調(diào),是正常使用OpenIM 服務(wù)的前提

| SDK? ? ? ? ? ? ? | 描述? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? |

| :--------------- | :----------------------------------------------------------- |

| [Login]? ? ? ? ? | 登錄,如果登錄成功,必須退出登錄才能再次執(zhí)行登錄操作? ? ? ? |

| [Logout]? ? ? ? | 退出登錄? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? |

| [GetLoginStatus] | 獲取登錄狀態(tài), 101:登錄成功,? 102:登陸中,? 103:登錄失敗,? 201:退出登錄 |

| [GetLoginUser]? | 獲取當(dāng)前登錄用戶UserID,此時用戶登錄狀態(tài)未知? ? ? ? ? ? ? ? |

| [initSDK]? ? ? ? | 初始化 SDK,整個生命周期執(zhí)行一次,登錄相關(guān)監(jiān)聽介紹如下:? ? |

OpenIM和調(diào)用方利用監(jiān)聽回調(diào)機(jī)制,和調(diào)用方信息互通,把登錄狀態(tài)通過異步回調(diào)方式即時傳遞給調(diào)用方,確保信息及時傳達(dá)而不阻塞其主線程。

## 監(jiān)聽說明

| 登錄相關(guān)監(jiān)聽? ? ? ? | 回調(diào)描述? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? |

| :------------------- | :----------------------------------------------------------- |

| [OnConnecting]? ? ? | 連接中,在連接后臺時(包括重連)回調(diào)? ? ? ? ? ? ? ? ? ? ? ? |

| [OnConnectSuccess]? | 連接成功? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? |

| [OnConnectFailed]? ? | 連接失敗,如果因網(wǎng)絡(luò)連接失敗會重連,其他情況不重連? ? ? ? ? |

| [OnKickedOffline]? ? | 被踢下線,可能由于多端登錄策略所致,或后臺管理員強(qiáng)制其退出登錄 |

| [OnUserTokenExpired] | 檢測token過期回調(diào)? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? |

## 調(diào)用流程

OpenIM調(diào)用流程分為如下幾步:

(1)初始化:在整個生命周期執(zhí)行一次

(2)設(shè)置監(jiān)聽:包括群組監(jiān)聽,好友監(jiān)聽,用戶監(jiān)聽,消息及會話監(jiān)聽,這些監(jiān)聽會在其他章節(jié)中描述

(3)登錄:登錄回調(diào)成功后再執(zhí)行其他操作,否則可能出現(xiàn)資源加載未完成的錯誤

(4)收發(fā)消息等操作;

## 好友管理相關(guān)接口

OpenIM提供好友關(guān)系托管,比如好友申請,同意,以及好友獲取等,OpenIM在客戶端本地存儲好友關(guān)系,并結(jié)合消息通知機(jī)制,按需調(diào)用后臺接口,確保本地和服務(wù)端數(shù)據(jù)一致。同時利用監(jiān)聽機(jī)制,把數(shù)據(jù)變化通過異步回調(diào)傳達(dá)調(diào)用方。OpenIM在收發(fā)消息時,默認(rèn)不檢查好友關(guān)系,您可以在配置文件中自行修改。OpenIM好友關(guān)系是雙向關(guān)系,A添加B為好友后,則A在B的好友列表中,B也在A的好友列表中,A刪除B,僅僅只是刪除A的好友列表,而B的好友列表不受影響。同樣,黑名單也類似。

| SDK? ? ? ? ? ? ? ? ? ? ? ? ? ? | 描述? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? |

| :----------------------------- | :------------------------------------------------------- |

| [GetDesignatedFriendsInfo]? ? | 獲取指定好友的信息? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? |

| [GetFriendList]? ? ? ? ? ? ? ? | 獲取所有的好友列表? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? |

| [SearchFriends]? ? ? ? ? ? ? ? | 通過關(guān)鍵詞搜索好友? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? |

| [CheckFriend]? ? ? ? ? ? ? ? ? | 檢查是否好友關(guān)系? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? |

| [AddFriend]? ? ? ? ? ? ? ? ? ? | 發(fā)起添加好友請求? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? |

| [SetFriendRemark]? ? ? ? ? ? ? | 設(shè)置好友備注? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? |

| [DeleteFriend]? ? ? ? ? ? ? ? | 刪除好友(單向刪除)? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? |

| [GetRecvFriendApplicationList] | 獲取我收到的添加好友申請列表? ? ? ? ? ? ? ? ? ? ? ? ? ? |

| [GetSendFriendApplicationList] | 獲取我發(fā)起的的添加好友申請列表? ? ? ? ? ? ? ? ? ? ? ? ? |

| [AcceptFriendApplication]? ? ? | 同意好友申請? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? |

| [RefuseFriendApplication]? ? ? | 拒絕好友申請? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? |

| [SetFriendListener]? ? ? ? ? ? | 設(shè)置好友、黑名單相關(guān)監(jiān)聽,用于UI層實時感知數(shù)據(jù)變化并刷新 |

## 監(jiān)聽說明

好友監(jiān)聽器的作用:調(diào)用方設(shè)置好友監(jiān)聽,好友關(guān)系的變化會通過OpenIM消息機(jī)制實時同步到需要感知的在線用戶,包括用戶的其他端,調(diào)用方根據(jù)回調(diào)事件做相關(guān)的數(shù)據(jù)處理。

比如用戶B在Android端添加用戶A為好友,用戶A(所有在線的終端)收到B的好友申請,則A調(diào)用GetRecvFriendApplicationList獲取收到的好友申請列表,刷新界面。同時,用戶B在線其他的終端比如PC端也會收到通知,B調(diào)用GetSendFriendApplicationList獲取發(fā)起的好友申請列表,刷新B發(fā)出的好友申請列表。

當(dāng)然也可以利用回調(diào)的參數(shù)信息,做增量處理,而不用獲取全量的好友申請列表。

以用戶B申請?zhí)砑佑脩鬉為例

| 好友及黑名單監(jiān)聽? ? ? ? ? ? ? | 描述? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? |

| :---------------------------- | :--------------------------------------------------- |

| [OnFriendApplicationAdded]? ? | 好友申請列表增加,主動發(fā)起者和被動添加者會收到? ? ? |

| [OnFriendApplicationDeleted]? | 好友申請列表刪除,主動刪除者會收到? ? ? ? ? ? ? ? ? |

| [OnFriendApplicationAccepted] | 好友申請被同意,主動發(fā)起者和被動添加者會收到? ? ? ? |

| [OnFriendApplicationRejected] | 好友申請被拒絕,主動發(fā)起者和被動添加者會收到? ? ? ? |

| [OnFriendAdded]? ? ? ? ? ? ? | 好友增加,用戶好友增加時會收到? ? ? ? ? ? ? ? ? ? ? |

| [OnFriendDeleted]? ? ? ? ? ? | 好友刪除,用戶好友減少時會收到? ? ? ? ? ? ? ? ? ? ? |

| [OnFriendInfoChanged]? ? ? ? | 好友信息改變,用戶好友信息(比如昵稱等)改變時會收到 |

| [OnBlackAdded]? ? ? ? ? ? ? ? | 黑名單增加,用戶黑名單增加時會收到? ? ? ? ? ? ? ? ? |

| [OnBlackDeleted]? ? ? ? ? ? ? | 黑名單移除,用戶黑名單減少時會收到? ? ? ? ? ? ? ? ? |

## 項目介紹

OpenIM繼續(xù)領(lǐng)跑開源IM領(lǐng)域,在廣大開發(fā)者的支持下,目前github star突破9k。在數(shù)據(jù)泄露、信息外泄、隱私濫用的時代,IM私有化部署需求旺盛。其中,政企協(xié)同辦公對IM需求猛增,隨著信息化技術(shù)的迭代升級以及信創(chuàng)產(chǎn)業(yè)加速落地和實踐,協(xié)同辦公軟件的發(fā)展?jié)摿⑦M(jìn)一步被釋放?!鞍踩煽亍爸鸩匠蔀榈谝灰亍τ谏鐓^(qū)交友領(lǐng)域,暴露出的隱私安全問題越來越多,私有化部署確保用戶數(shù)據(jù)不泄露。

OpenIM從服務(wù)端到客戶端SDK開源即時通訊(IM)整體解決方案,可以輕松替代第三方IM云服務(wù),打造具備聊天、社交、辦公功能的app。

github地址:

開發(fā)者中心:

## OpenIM團(tuán)隊

創(chuàng)始團(tuán)隊來自資深I(lǐng)M技術(shù)團(tuán)隊,我們致力于用開源技術(shù)創(chuàng)造服務(wù)價值,打造輕量級、高可用的IM架構(gòu),開發(fā)者只需簡單調(diào)用 SDK,即可在應(yīng)用內(nèi)構(gòu)建多種即時通訊及實時音視頻互動場景。OpenIM優(yōu)勢:開源,安全,可靠,低成本。對于信息安全重視的電子政務(wù),企業(yè)協(xié)同辦公,OpenIM都是非常好的選擇。

從公司成立之初就將“開源”作為核心戰(zhàn)略來推進(jìn),開源充分體現(xiàn)了自由、平等、分享的互聯(lián)網(wǎng)精神。

OpenIM邀請全球技術(shù)極客參與技術(shù)優(yōu)化,讓開發(fā)者輕松集成,讓每一個應(yīng)用都具備IM功能,同時考慮企業(yè)的接入成本、服務(wù)器資源以及最重要的數(shù)據(jù)安全性和私密性。


文章名稱:開源im系統(tǒng)go語言 go語言 開源項目
文章來源:http://weahome.cn/article/ddodjhs.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部