即時通訊(IM)開源項目OpenIM每周迭代版本發布-音視頻實時通話-v2.0.4

      網友投稿 1415 2025-04-01

      介紹

      OpenIM每周五發布新版,包括新特性發布,bug修復,同時合并PR

      由于2.0版本重構完畢,架構更清晰,代碼更規范,先邀請各位參與OpenIM社區建設,包括技術開發,技術分享等,特性開發,性能優化,bug修復等,有興趣的同學可以加我私聊。

      可以多人音視頻聊天,以及多端同步呼叫。

      web端體驗:https://open-im-online.rentsoft.cn/

      安卓端體驗:https://www.pgyer.com/OpenIM

      iOS端體驗:https://testflight.apple.com/join/79cQqBYd

      項目成果

      項目整體超過7K star,我們繼續努力爭做開源IM的領跑者,請大家多多支持。消息通過經過壓測和可靠性測試,請放心用于生產環境。

      性能及容量總結

      服務器資源:8核16G內存, 6個機械磁盤,每個磁盤100G, 用于mongo分片,10MB帶寬。

      容量:用戶容量10萬以上,消息條數10億條。

      性能評估:同時在線用戶10萬,每秒鐘發送消息900條,消息延時1秒(從發送者發出消息到接收到消息)

      可靠性總結

      啟動sdk,模擬50個用戶在線、離線情況,消息可靠性100%。

      發送10萬消息,有3條失敗,其他消息都能被對方精確收到,并成功落地本地db。對于失敗的3條消息,接收方確實沒有收到,系統消息是一致的。

      github地址:https://github.com/OpenIMSDK/Open-IM-Server

      開發者中心:https://doc.rentsoft.cn/#/

      本周版本 客戶端SDK v2.0.3 &&服務端 v2.0.4

      特性 類別

      群聊已讀,發送者能看到本條消息哪些人已讀,哪些人未讀,對于辦公場景極為有用 新特性

      音視頻通話優化,信令通道建設 新特性

      消息發送失敗,點擊可重新發送 新特性

      消息免打擾,接收但不提醒 新特性

      動態表情包添加 新特性

      聊天背景設置 新特性

      etcd在keepalive失敗時容錯 bug修復

      聊天記錄中昵稱和頭像實時同步,多端同步 bug修復

      發消息 好友權限驗證 ,可配置 bug修復

      docker鏡像v2.0.4 已更新,請拉取最新鏡像, 見文檔:https://doc.rentsoft.cn/#/demo/server_deploy/docker_singe

      OpenIM每周都會迭代發布新版本,別值得注意的是,版本號的第一位數字代表大版本,一般是做了協議改造升級,服務器和客戶端兩者必須保持大版本一致。

      分支說明:

      (1)dev:外部開發者在此分支上提交pr;

      (2)tuoyun:OpenIM內部專用;

      (3)main:最新可用分支;(建議大家用tag版本)

      開發中的特性

      特性 預計完成時間

      私聊消息可選擇閱后即焚 3月25日

      刪除歷史記錄云端同步 3月25日

      群管理:解散群,禁言,昵稱修改等 4月1日

      第三方通知類型:比如oa通知,hr通知等 4月1日

      音視頻通話相關rtc信令接口

      音視頻監聽回調說明

      音視頻通話監聽,在login之前調用SetSignalingListener(callback open_im_sdk_callback.OnSignalingListener)設置

      type OnSignalingListener interface {

      //被邀請者收到:音視頻通話邀請

      OnReceiveNewInvitation(receiveNewInvitationCallback string)

      receiveNewInvitationCallback為

      {

      “opUserID”: “18666662412”,

      “invitation”: {

      “inviterUserID”: “18666662412”,

      “inviteeUserIDList”: [

      “18349115126”

      ],

      “groupID”: “f2e77b9ec33e92298675ad511fdfa6ab”,

      “roomID”: “room_id_111”,

      “timeout”: 1000,

      “mediaType”: “video”,

      “sessionType”: 2

      },

      “offlinePushInfo”: { }

      }

      //邀請者收到:被邀請者同意音視頻通話

      OnInviteeAccepted(inviteeAcceptedCallback string)

      inviteeAcceptedCallback為

      {

      “opUserID”: “18349115126”,

      “invitation”: {

      “inviterUserID”: “18666662412”,

      “inviteeUserIDList”: [“18349115126”],

      “groupID”: “f2e77b9ec33e92298675ad511fdfa6ab”,

      “roomID”: “room_id_111”,

      “timeout”: 1000,

      “mediaType”: “video”,

      “sessionType”: 2

      },

      “offlinePushInfo”: {}

      }

      //邀請者收到:被邀請者拒絕音視頻通話

      OnInviteeRejected(inviteeRejectedCallback string)

      inviteeRejectedCallback為

      {

      “opUserID”: “18349115126”,

      “invitation”: {

      “inviterUserID”: “18666662412”,

      “inviteeUserIDList”: [“18349115126”],

      “groupID”: “f2e77b9ec33e92298675ad511fdfa6ab”,

      “roomID”: “room_id_111”,

      “timeout”: 1000,

      “mediaType”: “video”,

      “sessionType”: 2

      },

      “offlinePushInfo”: {}

      }

      //被邀請者收到:邀請者取消音視頻通話

      OnInvitationCancelled(invitationCancelledCallback string)

      invitationCancelledCallback為

      {

      “opUserID”: “18666662412”,

      “invitation”: {

      “inviterUserID”: “18666662412”,

      “inviteeUserIDList”: [

      “18349115126”

      ],

      “roomID”: “room_id_111”,

      “timeout”: 10,

      “mediaType”: “video”,

      “platformID”: 1,

      “sessionType”: 1

      },

      “offlinePushInfo”: { }

      }

      //邀請者收到:被邀請者超時未接通

      OnInvitationTimeout(invitationTimeoutCallback string)

      invitationTimeoutCallback為

      {

      “opUserID”: “18666662412”,

      “invitation”: {

      “inviterUserID”: “18666662412”,

      “inviteeUserIDList”: [“18349115126”],

      “roomID”: “room_id_111”,

      “timeout”: 10,

      “mediaType”: “video”,

      “platformID”: 1,

      “sessionType”: 1

      },

      “offlinePushInfo”: {}

      }

      //被邀請者(其他端)收到:比如被邀請者在手機拒接,在pc上會收到此回調

      OnInviteeRejectedByOtherDevice(inviteeRejectedCallback string)

      //被邀請者(其他端)收到:比如被邀請者在手機接聽,在pc上會收到此回調

      OnInviteeAcceptedByOtherDevice(inviteeAcceptedCallback string)

      音視頻邀請invitationInfo結構說明

      音視頻邀請相關信息

      {

      “inviterUserID”: “18666662412”, //邀請者UserID

      “inviteeUserIDList”: [“18349115126”], //被邀請者UserID列表,如果是單聊只有一個元素

      “groupID”: “f2e77b9ec33e92298675ad511fdfa6ab”, //如果是單聊,為""

      “roomID”: “room_id_111”, //房間ID,必須唯一,可以不設置。

      “timeout”: 1000, //邀請超時時間(秒)

      “mediaType”: “video”, //video 或者audio

      “sessionType”: 2 //1為單聊,2為群聊

      “platformID”:1 //和之前定義一致

      }

      metadata是參與者信息具體為

      ParticipantMetaData

      {

      GroupInfo //為群通話時有效

      GroupMemberInfo //為群通話時有效

      PublicUserInfo

      }

      音視頻函數參數及回調說明

      SignalingInvite(callback open_im_sdk_callback.Base, operationID string, signalInviteReq string)

      說明:邀請個人加入音視頻

      請求參數:

      {

      “invitation”: {

      “inviteeUserIDList”: [“18349115126”], //只有一個元素

      “roomID”: “room_id_111”,

      “timeout”: 1000,

      “mediaType”: “video”,

      “sessionType”: 1,

      “platformID”:1

      }

      “offlinePushInfo”:{}

      }

      回調:成功時,OnSuccess回調

      {

      “token”: “18666662412”,

      “roomID”: “room_id_111”,

      “liveURL”: “wss://”

      }

      SignalingInviteInGroup(callback open_im_sdk_callback.Base, operationID string, signalInviteInGroupReq string)

      說明:邀請群里某些人加入音視頻

      請求參數

      {

      “invitation”: {

      “inviteeUserIDList”: [“18349115126”],

      “groupID”: “f2e77b9ec33e92298675ad511fdfa6ab”,

      “roomID”: “room_id_111”,

      “timeout”: 1000,

      “mediaType”: “video”,

      “sessionType”: 2

      }

      }

      回調:成功時,OnSuccess回調

      {

      “token”: “18666662412”,

      “roomID”: “room_id_111”,

      “liveURL”: “ws://”

      }

      SignalingAccept(callback open_im_sdk_callback.Base, operationID string, signalAcceptReq string)

      說明:同意某人音視頻邀請

      請求參數

      {

      “opUserID”: “18349115126”,

      “invitation”: {

      “inviterUserID”: “18666662412”,

      “inviteeUserIDList”: [

      “18349115126”

      ],

      “groupID”: “f2e77b9ec33e92298675ad511fdfa6ab”,

      “roomID”: “room_id_111”,

      “timeout”: 1000,

      “mediaType”: “video”,

      “sessionType”: 2

      }

      }

      回調:成功時,OnSuccess回調

      OnSuccess

      {

      “token”: “18349115126”,

      “roomID”: “room_id_111”,

      “liveURL”: “”

      即時通訊(IM)開源項目OpenIM每周迭代版本發布-音視頻實時通話-v2.0.4

      }

      SignalingReject(callback open_im_sdk_callback.Base, operationID string, signalRejectReq string)

      說明:拒絕某人音視頻邀請

      請求參數

      {

      “opUserID”: “18349115126”,

      “invitation”: {

      “inviterUserID”: “18666662412”,

      “inviteeUserIDList”: [

      “18349115126”

      ],

      “groupID”: “f2e77b9ec33e92298675ad511fdfa6ab”,

      “roomID”: “room_id_111”,

      “timeout”: 1000,

      “mediaType”: “video”,

      “sessionType”: 2

      }

      }

      回調:成功時,OnSuccess回調

      OnSuccess{}

      SignalingCancel(callback open_im_sdk_callback.Base, operationID string, signalCancelReq string)

      說明:邀請者取消音視頻通話

      請求參數

      {

      “opUserID”: “18666662412”,

      “invitation”: {

      “inviterUserID”: “18666662412”,

      “inviteeUserIDList”: [“18349115126”],

      “roomID”: “room_id_111”,

      “timeout”: 10,

      “mediaType”: “video”,

      “platformID”: 1,

      “sessionType”: 1

      }

      }

      回調:成功時,OnSuccess回調

      OnSuccess{}

      我們的團隊

      創始團隊來自前微信技術團隊,我們致力于用開源技術創造服務價值,打造輕量級、高可用的IM架構,開發者只需簡單調用 SDK,即可在應用內構建多種即時通訊及實時音視頻互動場景。無論是電子政務辦公,企業協同辦公,或者去中心化的web3應用,OpenIM都是最優選擇。對于IM最核心的服務端和客戶端SDK,大家可以免費商用,對于帶有UI版本的客戶端,需要商業授權,對于某些高級功能,也需要商業授權。

      視頻

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:如何取消自動保存(如何取消自動保存密碼)
      下一篇:工作流產品
      相關文章
      国产V亚洲V天堂无码久久久| 久久亚洲高清综合| 亚洲av无码国产精品夜色午夜| 久99精品视频在线观看婷亚洲片国产一区一级在线| 亚洲综合久久一本伊伊区| 亚洲精品福利网站| 亚洲黄色在线电影| 亚洲视频网站在线观看| 亚洲最新中文字幕| 亚洲一卡2卡4卡5卡6卡残暴在线| 亚洲国产av美女网站| 国产99在线|亚洲| 亚洲综合国产成人丁香五月激情| 亚洲精品456人成在线| 亚洲色无码国产精品网站可下载| 亚洲一久久久久久久久| 亚洲精品GV天堂无码男同| 亚洲AV无码一区二区大桥未久 | 亚洲乱码国产一区三区| 亚洲综合在线另类色区奇米| 亚洲熟妇丰满多毛XXXX| 国产成人亚洲综合无码精品| 亚洲爱情岛论坛永久| 久久久久亚洲AV成人片| 亚洲国产精品久久丫| 久久精品国产亚洲AV久| 亚洲熟妇无码八V在线播放| 亚洲精品欧美综合四区| 国产午夜亚洲精品不卡电影| 亚洲精品视频在线观看你懂的| 亚洲无人区午夜福利码高清完整版| 国产亚洲AV无码AV男人的天堂| 亚洲A∨无码无在线观看| 久久精品亚洲中文字幕无码麻豆| 亚洲天堂中文字幕在线观看| 亚洲精品国产日韩| 亚洲福利精品电影在线观看| 亚洲尤码不卡AV麻豆| 亚洲图片一区二区| 国产精品亚洲片夜色在线| 亚洲AV无码专区在线电影成人 |