WordZ:Word終結者,基于Google API的文檔自動化 電子合同發票流水賬單線上集成方案
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”: “”
}
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小時內刪除侵權內容。