野火IM是開源通用即時(shí)通訊組件,通過(guò)它用戶可以根據(jù)自己的需求來(lái)搭建IM通訊框架,從而使得用戶可以自己搭建便宜有效的IM通訊能力。為用戶提供了免費(fèi)可控高效易用的IM組件,能夠更加容易地賦予客戶IM能力,使客戶可以快速的在自有產(chǎn)品上添加聊天功能。軟件分為社區(qū)版和專業(yè)版,社區(qū)辦是完全免費(fèi)的,大家可以根據(jù)自己的需求來(lái)選擇。
軟件特色
使用了微信Mars連接庫(kù),序列化使用protobuf,協(xié)議使用MQTT修改的私有協(xié)議,借鑒了微軟ActiveSync的思路。
做到不丟消息,完美地支持多端。另外針對(duì)安全性做了仔細(xì)的設(shè)計(jì),鏈路層全程加密,本地?cái)?shù)據(jù)庫(kù)加密。
提供了UI庫(kù),大大減少開發(fā)者的工作量。
野火IM可能是世界上內(nèi)核最像微信的一個(gè)IM(使用了微信的連接庫(kù),使用了微信類似的協(xié)議)。
提供能力庫(kù)和UI庫(kù),支持單聊、群聊、聊天室、頻道(類似與微信的公眾號(hào))和機(jī)器人。
支持Server API。提供用戶信息、好友關(guān)系和群組信息托管。支持常見消息類型和自定義消息。
提供音視頻通話能力,支持音視頻會(huì)議功能。支持國(guó)產(chǎn)化系統(tǒng),支持全平臺(tái)客戶端。
社區(qū)版與專業(yè)版區(qū)別
•社區(qū)版是開源的,問(wèn)題的修復(fù)需要客戶自主解決或等待我們解決,但時(shí)間不能保障。專業(yè)版閉源,我們會(huì)快速修復(fù)問(wèn)題。
•社區(qū)版是單機(jī)版,專業(yè)版支持集群。社區(qū)版雖然是單機(jī),但性能也很高,使用高性能服務(wù)器,足夠滿足上百萬(wàn)用戶;商業(yè)版除了通過(guò)集群部署能夠支撐比社區(qū)版更多用戶外,還能夠提供高可靠性。
•社區(qū)版使用的數(shù)據(jù)庫(kù)是mysql,我們已經(jīng)做了分表處理,但還是需要按月刪除舊消息。專業(yè)版使用了mysql+mongodb,消息能保存更久,場(chǎng)景搭配也更合理。
•專業(yè)版附帶對(duì)象存儲(chǔ)服務(wù),可以支持純私有化部署,所有的環(huán)節(jié)都經(jīng)過(guò)加密處理。社區(qū)版依賴于七牛云存儲(chǔ),文件上傳沒(méi)有加密。
•專業(yè)版支持Web、小程序接入,社區(qū)版不支持Web、小程序接入。
•專業(yè)版特有消息送達(dá)報(bào)告和消息閱讀報(bào)告功能,可以提高辦公場(chǎng)景下的體驗(yàn)。
•專業(yè)版支持國(guó)產(chǎn)化系統(tǒng),支持任意國(guó)產(chǎn)CPU+國(guó)產(chǎn)操作系統(tǒng),支持達(dá)夢(mèng)金倉(cāng)等國(guó)產(chǎn)數(shù)據(jù)庫(kù)。
•社區(qū)版僅支持mysql數(shù)據(jù)庫(kù),專業(yè)版還可以除了國(guó)產(chǎn)數(shù)據(jù)庫(kù)外的更多數(shù)據(jù)庫(kù),比如sqlserver等。
•專業(yè)版進(jìn)行了極致的性能優(yōu)化,同樣用戶下所需要的硬件資源更少。
•專業(yè)版支持文件記錄功能,可以查詢/管理發(fā)送和接收到的文件,適用于辦公環(huán)境。
•專業(yè)版可以支持最大4GB的大文件傳輸。
•專業(yè)版支持音視頻高級(jí)版,可以提供更優(yōu)質(zhì)的音視頻服務(wù),并且可以支持會(huì)議模式。
•專業(yè)版支持雙網(wǎng)環(huán)境,可以用在內(nèi)外網(wǎng)同時(shí)使用的雙網(wǎng)環(huán)境。
專業(yè)版適用場(chǎng)景
如果有以下任意需求之一都可以考慮適用專業(yè)版:
•對(duì)安全性有較高要求。野火IM專業(yè)版對(duì)所有環(huán)節(jié)都有加密處理,安全無(wú)漏洞。
•用戶規(guī)模較大,或者有較多千人以上的群聊,對(duì)性能需求較高的場(chǎng)景。野火IM專業(yè)版具有更高的單機(jī)性能,而且可以水平擴(kuò)展,提供高可能能力。
•對(duì)數(shù)據(jù)信息保密性要求較高,需要存私有化部署。野火IM專業(yè)版可以做到除了推送以外,完全脫離對(duì)外網(wǎng)的依賴。可以對(duì)推送服務(wù)適用防火墻白名單或者改為拉取等方案,確保您對(duì)信息萬(wàn)無(wú)一失,適用于軍工企業(yè)和保密單位。
•需要國(guó)產(chǎn)化系統(tǒng)或者特殊的數(shù)據(jù)庫(kù)系統(tǒng)。
•需要支持Web或小程序時(shí),只能選擇專業(yè)版。
•想要更好的音視頻通話體驗(yàn),需要在線會(huì)議功能。
•辦公場(chǎng)景下使用,文件管理和閱讀報(bào)告能提高辦公體驗(yàn)。
技術(shù)支持規(guī)范
野火IM團(tuán)隊(duì)沒(méi)有對(duì)應(yīng)的人力和財(cái)力進(jìn)行無(wú)條件的技術(shù)支持服務(wù),但又不能讓客戶被阻礙無(wú)法順暢使用。因此我們必須折中找到一個(gè)平衡點(diǎn),經(jīng)歸納大概有以下三部分的技術(shù)支持,提供的技術(shù)支持情況如下:
•開放源碼的問(wèn)題和BUG,理論上所有問(wèn)題歸客戶自己來(lái)解決,客戶解決后可以給我們提PR。也可以給我們提issue,我們也會(huì)按照我們當(dāng)前的人力情況來(lái)評(píng)估問(wèn)題的輕重緩急并進(jìn)行處理。社區(qū)版IM Server除外。
•閉源組件的問(wèn)題和BUG,包括協(xié)議棧,音視頻SDK,PCSDK和專業(yè)版等,都?xì)w我們來(lái)解決,問(wèn)題提交給我們后,我們會(huì)無(wú)條件第一時(shí)間去解決。
•使用方法和其它咨詢問(wèn)題,客戶需要自己來(lái)查閱文檔,搜索BBS和查看源代碼。如果無(wú)法找到對(duì)應(yīng)問(wèn)題描述,我們會(huì)第一時(shí)間負(fù)責(zé)補(bǔ)充說(shuō)明。
•社區(qū)版IM Server強(qiáng)烈不建議客戶自己修改。如果沒(méi)有修改的情況下,如果發(fā)現(xiàn)問(wèn)題可以報(bào)告給我們,我們會(huì)第一時(shí)間負(fù)責(zé)修復(fù)。如果修改了,我們就無(wú)法對(duì)您修改過(guò)的版本進(jìn)行支持,購(gòu)買過(guò)的SDK可能會(huì)有各種各樣的問(wèn)題,我們不會(huì)再提供技術(shù)支持。“私自拆開不再保修”是各行各業(yè)的普遍做法。
環(huán)境依賴
mac系統(tǒng)
1.最新版本的Xcode
2.nodejs 10.16.X
3.npm 6.9.0
4.python 2.7.X
5.git
6.npm install -g node-gyp
windows系統(tǒng)
1.nodejs v10.16.x
2.python 2.7.X
3.git
4.npm 6.9.0
5.npm install --global --vs2015 windows-build-tools
6.npm install -g node-gyp
第5步安裝windows開發(fā)環(huán)境的安裝內(nèi)容較多,如果網(wǎng)絡(luò)情況不好可能需要等較長(zhǎng)時(shí)間,選擇早上網(wǎng)絡(luò)較好時(shí)安裝是個(gè)好的選擇
linux系統(tǒng)
1.nodejs10.16.X
2.python2.7X
3.git
常見問(wèn)題
•如何調(diào)試?PC使用了Electron,內(nèi)嵌Chrome瀏覽器,跟在瀏覽器上開發(fā)調(diào)試是一樣的。快捷鍵Ctrl +g(MAC下是CMD+g)打開開發(fā)者模式。
•打包時(shí),如果一直顯示installing production dependencies platform=win32 arch=ia32 appDir=C:\<your path>\pc-chat\dist, 或者提示下載什么之類的,可將dep目錄下對(duì)應(yīng)平臺(tái)的electron依賴,解壓到對(duì)應(yīng)的目錄。
// windows
C:\Users\<你的用戶名>\.electron-gyp
// mac/linux
~/.electron-gyp
•打包時(shí),如果下載electron版本超時(shí),可以使用我們下載好的electron放到緩存目錄。
•windows上需要嚴(yán)格按照環(huán)境進(jìn)行安裝,mac上環(huán)境比較簡(jiǎn)單一些,安裝node和node-gyp就可以了 另外如果還有問(wèn)題,請(qǐng)?jiān)囋嚸頽pm cache clean --force ,然后刪掉node_modules,再重新在非管理員權(quán)限下npm install
•有些殺毒軟件會(huì)對(duì)electron打包的軟件報(bào)病毒,詳情請(qǐng)參考electron報(bào)病毒 。安裝時(shí)可能被殺毒軟件限制安裝,這時(shí)候可以讓用戶使用綠色免安裝版(打包后release目錄下的unpacked目錄)。如果運(yùn)行時(shí)報(bào)錯(cuò),請(qǐng)?jiān)跉⒍拒浖锛由侠狻A硗庥袟l件的公司可以考慮去360官方或其他殺軟的官方提交檢測(cè)。
•ubuntu下,啟動(dòng)時(shí),若提示,A JavaScript error occurred in the main process Uncaught Exception:Error: Cannot open /opt/wildfirechat/resources/app.asar/marswrapper.node: Error: libdouble-conversion.so.1: cannot open shared object file: No such file or directory,可安裝libdouble-conversion1解決
•win平臺(tái)野火客戶端依賴Visual C++ Redistributable Package runtime。如果用戶PC上沒(méi)有安裝就需要安裝之后才能運(yùn)行,請(qǐng)從微軟官方下載安裝 https://www.microsoft.com/zh-CN/download/details.aspx?id=48145 。注意這個(gè)安裝包是有32位/64位區(qū)分的,需要安裝對(duì)應(yīng)架構(gòu)的版本。
•MAC應(yīng)用截屏?xí)r只能截屏空白桌面,無(wú)法截圖窗口內(nèi)容。這是因?yàn)闆](méi)有通過(guò)mac系統(tǒng)的安全許可,在設(shè)置-》安全與隱私-》切換到隱私那個(gè)標(biāo)簽-》屏幕錄制-》在野火IM PC應(yīng)用前打勾,并重啟應(yīng)用。
•使用cnpm后打包失敗,在某些平臺(tái)cnpm是會(huì)出現(xiàn)問(wèn)題的,請(qǐng)使用npm。
•npm install 報(bào)Unexpected end of JSON input while parsing near...錯(cuò)誤
如果常見問(wèn)題4解決不了,可以嘗試 npm config set registry http://registry.npm.taobao.org/ ,然后在按常見問(wèn)題4的步驟進(jìn)行
標(biāo)簽: 即時(shí)通訊
下載地址
裝機(jī)必備軟件
網(wǎng)友評(píng)論