野火IM是專業級即時通訊和實時音視頻整體解決方案,由北京野火無限網絡科技有限公司維護和支持。
主要特性有:私有部署安全可靠,性能強大,功能齊全,全平台支持,開源率高,部署運維簡單,二次開發友好,方便與第三方系統對接或者嵌入現有系統中。詳細情況請參考在線文檔。
主要包括一下項目:
| GitHub倉庫地址(主站) | 碼雲倉庫地址(鏡像) | 說明 | 備註 |
|---|---|---|---|
| im-server | im-server | IM Server | |
| android-chat | android-chat | 野火IM Android SDK源碼和App源碼 | 可以很方便地進行二次開發,或集成到現有應用當中 |
| ios-chat | ios-chat | 野火IM iOS SDK源碼和App源碼 | 可以很方便地進行二次開發,或集成到現有應用當中 |
| pc-chat | pc-chat | 基於Electron開發的PC 端 | |
| web-chat | web-chat | 野火IM Web 端, 體驗地址 | |
| wx-chat | wx-chat | 小程序平台的Demo(支持微信、百度、阿里、字節、QQ 等小程序平台) | |
| app server | app server | 應用服務端 | |
| robot_server | robot_server | 機器人服務端 | |
| push_server | push_server | 推送服務器 | |
| docs | docs | 野火IM相關文檔,包含設計、概念、開發、使用說明,在線查看 |
野火IM Vue Electron Demo,演示如何將野火IM的能力集成到Vue Electron項目。
PC SDK是需要付費的,價格請參考費用詳情PC SDK支持試用,具體請看試用說明PC SDK ,即可連到自行部署的服務master :基於Vue 3開發,是未來的開發重心vue2 :基於Vue 2開發,進入維護模式,不在開發新功能,鑑於Vue 2已經終止支持且不再維護,建議客戶升級到Vue 3版本本步安裝windows開發環境的安裝內容較多,如果網絡情況不好可能需要等較長時間,選擇早上網絡較好時安裝是個好的選擇
或參考手動安裝windows-build-tools進行安裝
npm config ls查看.npmrc配置文件的路徑.npmrc文件中,添加如下Electron 和node 鏡像配置: ELECTRON_MIRROR=https://npmmirror.com/mirrors/electron/
registry=https://registry.npmmirror.com/
npm install或npm cinpm run dev注意避免使用cnpm ,我們使用cnpm出現過一些奇怪問題的情況。如果您使用cnpm當遇到問題時請切換到npm試一下。另外代碼路徑中,不能有中文或者有空格,否則可能開發和打包過程中可能有問題。
npm install -g vue-devtoolsvue-devtoolsscript注入到public/index.html的head裡面npm run dev 打包為當前平台架構軟件
npm run package
yarn install --ignore-enginesyarn run package .github/workflows/github-actions-package.yml裡面的註釋,並根據實際情況修改,比如是否打包Linux版本等打包為其它平台架構軟件
#打包windows系统amd64架构
npm run cross-package-win
#打包windows系统x86架构
npm run cross-package-win32
#打包linux系统amd64架构
npm run cross-package-linux
#打包linux系统arm64架构
npm run cross-package-linux-arm64
#打包mac系统
npm run cross-package-mac
目前master的使用的Electron版本是13.6.9。如果您使用的SDK是8的,請切換到分支electron_8 。舊版本將進入維護階段不再添加新的功能,正在開發中的朋友們可以聯繫我們更新到最新SDK。 SDK是跟版本無關的,如果您的應用是其他版本的Electron,也可以使用我們提供的SDK。
默認附帶免費版本音視頻,關於野火音視頻可以參考野火音視頻使用說明和野火音視頻簡介。如果使用音視頻高級版,請參考音視頻高級版切換方法。
如何調試? PC使用了Electron,內嵌Chrome瀏覽器,跟在瀏覽器上開發調試是一樣的。快捷鍵Ctrl +g(MAC下是CMD+g)打開開發者模式。
打包時,如果一直顯示installing production dependencies platform=win32 arch=ia32 appDir=C:<your path>pc-chatdist , 或者提示下載什麼之類的,可將dep目錄下對應平台的electron依賴,解壓到對應的目錄。
// windows
C:Users<你的用户名>.electron-gyp
// mac/linux
~/.electron-gyp
打包時,如果下載electron版本超時,可以國內的electron鏡像。比如使用華為的electron鏡像的命令是: npm config set electron_mirror https://mirrors.huaweicloud.com/electron/ 。
windows上需要嚴格按照環境進行安裝,mac上環境比較簡單一些,安裝node和node-gyp就可以了另外如果還有問題,請試試命令npm cache clean --force ,然後刪掉node_modules,再重新在非管理員權限下npm ci --registry=https://mirrors.huaweicloud.com/repository/npm/
有些殺毒軟件會對electron打包的軟件報病毒,詳情請參考electron報病毒。安裝時可能被殺毒軟件限制安裝,這時候可以讓用戶使用綠色免安裝版(打包後release目錄下的unpacked目錄)。如果運行時報錯,請在殺毒軟件裡加上例外。另外有條件的公司可以考慮去360官方或其他殺軟的官方提交檢測。
ubuntu下,啟動時,若提示, 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平台野火客戶端依賴Visual C++ Redistributable Package runtime。如果用戶PC上沒有安裝就需要安裝之後才能運行,請從微軟官方下載安裝https://www.microsoft.com/zh-CN/download/details.aspx?id=48145 。注意這個安裝包是有32位/64位區分的,需要安裝對應架構的版本。
MAC應用截屏時只能截屏空白桌面,無法截圖窗口內容。這是因為沒有通過mac系統的安全許可,在設置-》安全與隱私-》切換到隱私那個標籤-》屏幕錄製-》在野火IM PC應用前打勾,並重啟應用。
npm install報Unexpected end of JSON input while parsing near...錯誤
如果常見問題4解決不了,可以嘗試npm config set registry https://mirrors.huaweicloud.com/repository/npm/ ,然後在按常見問題4的步驟進行
音視頻相關問題,請參考以下文檔
純內網環境,不能顯示表情
src/assets/twemoji目錄上傳到一個內網能訪問的服務器,比如部署app server的服務器http(s)://base_twemoji_url/72x72/1f1e6.png能訪問到對應表情,此處1f1e6.png藍底白字大寫字母Aconfig.js ,將https://static.wildfirechat.net/twemoji/assets/替換成新部署的http(s)://base_twemoji_url/ ,需要注意,最後一個/不能省略想自己部署表情圖片
請常見問題11
一直提示: Electron failed to install correctly, please delete node_modules/electron and try installing again 。見上面使用國內Electron鏡像問題。
windows 7 無法正常啟動,顯示黑屏或白屏
background.js裡面找到下面代碼,並取消//app.disableHardwareAcceleration();前面的註釋 // pls refer to: https://blog.csdn.net/youyudexiaowangzi/article/details/118676790
// windows 7 下面,如果启动黑屏,请将下面注释打开
//app.disableHardwareAcceleration();
MAC打包的版本是Universal版本,可以同時支持x64架構和arm64架構。 Universal版本比單架構版本要大一下,如果想要打包單架構的版本,可以把野火SDK瘦身到對應單一架構,然後打包對應平台。具體實現方法請自行查找。
MAC系統要求籤名才可以運行,有可能需要對野火的SDK重新簽名才可以,簽名的方法請網絡搜索。
Linux Arm64版本打包時,在linux+arm64的環境下打包deb格式的版本時會出問題,因為有個依賴軟件fpm是x64架構的,必須在x64架構的機器下交叉打包,系統可以是windows/mac/linux都行(mac的arm64機器也可以,因為mac系統有rosetta可以運行x64軟件)。
壓力測試發現,Vue 內置的keep-alive組件,可能有緩慢的內存洩漏問題,可將HomePage.vue裡面的keep-alive移除,由於activated和deactivated回調,要使用keep-alive組件才生效,需要妥善處理這兩個回調裡面的邏輯。
如果使用專業版IM服務且使用野火對象存儲服務,需要使野火對象存儲服務支持https,PC客戶端和Web客戶端需要使用HTTPS上傳。
打包失敗,提示Error in script "<stdin>" on line 75 -- aborting creation process
系統的用戶名是中文,或者項目放在中文路徑下,會導致打包失敗,請避免使用中文用戶名或中文路徑進行打包,可參考這兒
Windows 打包失敗,提示ERR_ELECTRON_BUILDER_CANNOT_EXECUTE
每次打包之前,打開任務管理器,查看是否有electron進程運行,必須全部殺掉才能正常打包。可參考github issue